使某个类型的所有Spring bean请求作用域

时间:2015-06-19 18:15:42

标签: java spring spring-mvc

我有一个类,我希望该类型的所有对象都是请求作用域。在我的Spring XML中,我创建了一个这样的对象列表。为每个bean设置范围和代理模式是非常繁琐且容易出错的,所以有没有办法让这种类型的所有bean请求自动限定?

我尝试用@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)注释课程,但它似乎没有用。当通过XML创建bean时,可能会忽略注释?

以下是我目前用XML编写的内容:

<util:list>
    <bean class="com.test.MyClass" scope="request">
        <aop:scoped-proxy/>
        <constructor-arg>
            <bean value="Hello"/>
        </constructor-arg>
    </bean>
    <bean class="com.test.MyClass" scope="request">
        <aop:scoped-proxy/>
        <constructor-arg>
            <bean value="Friend"/>
        </constructor-arg>
    </bean>
</util:list>

我的班级:

public class MyClass {
    private String value;

    public MyClass() { /* Default constructor */ }

    public MyClass(String value) {
        this.value = value;
}

基本上我想知道是否有一种方法可以避免将scope="request"<aop:scoped-proxy/>添加到MyClass类型的每个bean中,并自动将它们作为请求范围。

1 个答案:

答案 0 :(得分:0)

除了@Scope之外,您可能会尝试使用@Component注释该类。您需要在包中添加带有@Configuration和@ComponentScan的配置类,以允许扫描组件。