Spring 请求作用域 bean

问题描述 投票:0回答:3

如何设置一个 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");
        }
   }

谢谢。

java spring spring-mvc lifecycle
3个回答
29
投票

试试这个

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

有关更多详细信息,请参阅此博客文章


0
投票

您可以通过 xml 配置将 bean 设置为请求范围,如下所示

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

标签 aop:scoped-proxy 将用于使用代理注入您的 bean。这是基于 xml 的方式来将 bean 设置为请求范围。


0
投票

尝试使用范围名称而不是值:

@Scope(scopeName = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
© www.soinside.com 2019 - 2024. All rights reserved.