2015-06-19 2 views
0

У меня есть класс, и я хочу, чтобы все объекты этого типа были запрошены. В моем Spring XML я создаю список таких объектов. Очень утомительно и подвержено ошибкам устанавливать режим видимости и прокси для каждого из этих компонентов, так что есть способ сделать все бобы этого типа запрошенными автоматически?Сделать все весенние бобы определенного типа запроса областью

Я пробовал аннотировать класс с помощью @Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS), но он, похоже, не работал. Может быть, аннотация игнорируется, когда компонент создается через XML?

Вот то, что я до сих пор в 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 и автоматически запрашивайте их.

+0

Вы можете использовать «абстрактный» компонент, но вам все равно придется указывать его в XML для каждого 'bean'. –

ответ

0

Вы можете попытаться аннотировать класс с @Component в дополнение к @Scope. Вам нужно будет добавить класс конфигурации с @Configuration и @ComponentScan в пакете, чтобы разрешить сканирование компонента.

Смежные вопросы