2013-12-05 4 views
0

Таким образом, можно использовать <context:component-scan ...> или @ComponentScan("org.rythmengine.spring.web"), чтобы пружина могла сканировать бобы под определенным пакетом. Вопрос в том, как я могу ввести свою логику во время процесса сканирования? Скажем, я хочу использовать сканирование весны, чтобы найти все классы, реализующие определенный интерфейс, или аннотированные определенной аннотацией.Вводная логика в процесс сканирования пружинных компонентов

+0

Добавить 'include-filter', чтобы указать, что аннотацию или интерфейс. См. Http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-scanning-filters –

+0

thx. Где можно получить отфильтрованную коллекцию классов? –

+0

Юо не может ... Весна будет использовать эти компоненты. Не могли бы вы быть более выразительными в том, что вы хотите? Потому что изначально кажется, что вы хотите добавить свои собственные аннотации, которые нужно подобрать, но, видимо, вам нужно что-то еще. –

ответ

1

Для сканирования/обнаружения компонентов я предлагаю посмотреть, как <context:component-scan /> и LocalSessionFactoryBean сканирование компонентов или объектов. Оба используют один и тот же базовый механизм для обнаружения классов.

Что касается @CacheFor аннотацию я хотел бы предложить Усиливая Spring AOP точно так же, как весной использует для @Transactional и @Cacheable (чтобы назвать только 2 техника).

Конечно, вы можете разместить все позади пространства имен так же, как <tx:annotation-driven /> или <cache:annotation-driven />. Все это объяснено в справочнике this section.

Ссылки

  1. Сканирование для субъектов source | source
  2. Разработка пользовательских имен reference
  3. АОП с весны reference
+0

Вы можете указать ссылку на источник пружины, который обрабатывает аннотации '@ Transactional' и' @ Cacheable'? –

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