Spring请求范围bean

时间:2013-02-06 14:09:24

标签: java spring spring-mvc lifecycle

如何设置每个请求创建一次的bean。

我试图这样做:

   @Component
   @Scope(value = "request")
   public class TestBean {
        @PostConstruct
        public void init() {
             System.out.println("start request");
        }

        @PreDestroy
        public void onDestroy() {
             System.out.println("ends request");
        }
   }

感谢。

2 个答案:

答案 0 :(得分:25)

试试这个 @Scope(value="request", proxyMode= ScopedProxyMode.TARGET_CLASS)

有关详细信息,请参阅此blog post

答案 1 :(得分:0)

您可以将Bean设置为通过xml配置请求范围为

 <bean id="testBean" class="com.test.TestBean" scope="request">
    <aop:scoped-proxy/>
  </bean>

标记 aop:scoped-proxy 将用于使用代理注入您的bean。这是一种基于xml的方法,用于将bean设置为请求范围。