Spring Request Scope bean在多个线程中初始化

时间:2018-07-27 04:07:09

标签: java spring multithreading

我有一个用于初始化请求范围Bean的配置

@Configuration
public class ConfigurationClass {

@Bean(name = "TestBean")
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public TestBean getTestBean() {
...
} 
}

和使用上述bean的ClientClass。

@Repository
public class ClientClass {
    @Resource(name ="TestBean")
    private TestBean testBean;

    public void accessRequestBeanMethod() {
        testBean.testMethod();
    }
}

处理HTTP请求的请求会产生n个分别调用clientClass.accessRequestBeanMethod()的线程。 Spring在n个线程的每一个中初始化一个新的TestBean实例。我对Request范围的了解是,对于HTTP请求,该bean只会被初始化一次,但是似乎每个线程都需要初始化它。我希望为请求线程中所有产生的线程实现bean的缓存。我该如何实现?

0 个答案:

没有答案