Raj*_*kar 17 spring javabeans thread-safety
我的Web应用程序使用spring IOC.因此,我的所有spring bean都将是singleton(默认情况下).如果两个请求尝试访问单个类的两个不同方法.例如:MySpringBean是一个有两个方法searchRecord和insertRecord方法的类.如果在同一时刻,两个方法都试图通过同一个bean访问.
同一个spring bean如何同时可供客户端使用,或者当两个请求尝试访问两个不同的方法但是通过相同的spring bean时,它将成为并发问题.因为spring bean是单例,所以无法形成新的实例.在这种情况下,这是如何工作的?
Tom*_*icz 12
您必须首先了解并发何时可能导致问题.如果你的Spring bean是无状态的(它没有任何字段,所有字段都是final或者只分配了一次),多个线程可以安全地使用相同的bean,甚至是相同的方法.
小智 5
正如其他人已经建议的那样,在"单例"bean的情况下,Spring将为所有线程提供相同的实例.
您需要了解的是,线程通过执行代码来完成系统中的所有工作,而对象提供状态和行为(代码).因此,多个线程(在您的情况下为请求)确实可以在单例bean中同时运行相同的方法.您可以像Tomasz建议的那样使这些bean无状态,或者使它们"线程安全".
| 归档时间: |
|
| 查看次数: |
21709 次 |
| 最近记录: |