2015-06-19 107 views
0

我有一个类,并且我希望该类型的所有对象都是请求作用域。在我的Spring XML中,我创建了一个这样的对象列表。这是非常单调和容易出错的,必须为每个bean设置作用域和代理模式,那么有没有办法让这种类型的所有bean的请求被自动作用域?使某个类型的所有Spring 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都有自动请求范围。

+0

您可以使用'abstract' bean,但是您仍然必须在每个'bean'的XML中指定它。 –

回答

0

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