Java 定义Spring请求范围bean
对于使用spring请求范围bean,这个定义正确吗Java 定义Spring请求范围bean,java,spring,Java,Spring,对于使用spring请求范围bean,这个定义正确吗 <bean id="shoppingCart" class="ShoppingCart" scope="request"> <!-- This requires CGLIB --> <aop:scoped-proxy/> </bean> 一般来说-是的,这是正确的 如果对于每个请求,您都直接从BeanFactory检索请求范围的bean,那么您就不需要代理 但是,如果要使用请求soped
<bean id="shoppingCart" class="ShoppingCart" scope="request">
<!-- This requires CGLIB -->
<aop:scoped-proxy/>
</bean>
一般来说-是的,这是正确的
如果对于每个请求,您都直接从BeanFactory
检索请求范围的bean,那么您就不需要代理
但是,如果要使用请求soped bean作为单例作用域bean的依赖项,则需要代理,例如:
@Controller
public class MyController {
@Autowired
private ShoppingCart shoppingCart;
}
有关作用域bean的更多详细信息,请参见本页
作为补充说明,我建议尽可能使用标准的基于JDK接口的POXIE,而不是CGLIB。有关使用spring代理的更多信息,请参见。为什么需要它作为代理?谢谢,因此在我的stateles web服务中,我需要一个类来保存客户信息变量,并保存和处理它们,仅用于该请求,使用bean factory是一种很好的方法?我将要使用的是依赖于我以前的结构还是我可以在春天的任何时候创建并使用bean工厂?那么我的最终xml定义将如下所示?您不会在Spring中创建BeanFactory—框架会这样做,因为使用ApplicationContext就是BeanFactory。aby Spring托管bean可以实现BeanFactoryAware或@Autowire BeanFactory,甚至整个ApplicationContext,但这会将您绑定到Spring API,因此最好只@Autowire您需要的bean,而不是@Autowering BeanFactory,然后从中重新检索bean。