考虑一个弹簧操作的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/

10-10 11:49