考虑一个弹簧操作的Web服务,该服务定义了操作opA(类opA)。将为该操作的每个请求创建一个单独的opA对象实例。
Class opA{
@Autowired
B objB;
}
Class B{
C objC;
.
.
}
Class C{
.
.
.
}
<bean id="objB" class="blah.blah.B">
<property name="objC">
<bean class="blah.blah.C"/>
</property>
</bean>
注意:opA也由spring管理
这里的对象objB是带有内部bean objC的Spring单例作用域。现在,如果两个对opA的请求同时到达,它们都将具有相同的objB实例,对吗?导致objB中objC的状态可能发生竞争。我对么?如果不能,请解释原因?
最佳答案
您有一个实例,该实例的状态已在整个应用程序中使用,因此我想您可能会遇到争用情况,但这取决于您的state
(objB是Service还是objC是Repository?)以及您的实现。
关于java - Web服务中Spring托管bean的竞争状况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13943423/