2013-03-01 6 views
0

Обычно включение аннотаций весной, таких как @Autowired, осуществляется путем включения этого в весенний XML.Как программно включить «аннотацию-config» весной ApplicationContext

<context:annotation-config/> 

Есть ли способ, которым я могу сделать это программно в ApplicationContext (или реализации) перед его инициализацией?

ответ

1

Просто использовать класс AnnotationConfigApplicationContext в классе @Configuration. Конфигурация контейнера на основе java не зависит от выполнения сканирования компонентов. Это просто другой подход для конфигурации компонентов на основе XML.

Go через эти ссылки:

coderanch

Spring annotations - @Configuration to invoke spring bean auto-building

0

Если вам действительно нужен этот хак, вы можете взглянуть на AnnotationConfigBeanDefinitionParser.parse(), чтобы проверить, как она манипулирует контекст и какие бин регистрируют с ним, затем попытайтесь воспроизвести это программно с помощью реализации ApplicationContext для достижения тех же эффектов.

This post может помочь в том, как добавить новые определения bean в реестр компонентов.

1

Я боролся много с этим, в качестве обходного пути я создал простой файл пружинно-аспектно-config.xml с последующим содержанием

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context.xsd"> 

    <context:spring-configured/> 

и добавил его в качестве импорта в мой контекст приложений класс

@ImportResource("classpath:spring-aspect-config.xml") 

программным вы можете сделать то же самое, указав

@EnableSpringConfigured 

на вашем классе контекста приложения.

Ссылка - https://jira.springsource.org/browse/SPR-7888

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