Контекст конфигурации контейнера на основе аннотаций Spring: фильтры включения и исключения - PullRequest
0 голосов
/ 03 января 2011

сначала я указываю на похожий вопрос . Я потратил больше часа, чтобы настроить это, но PathMatchingResourcePatternResolver все еще сканирует все.

У меня есть один файл common.xml (импортированный из specific.xml) и файл определения bean-компонента specific.xml. Контекст загружается из specific.xml. В common.xml есть этот элемент:

<context:component-scan base-package="cz.instance.transl">
   <context:exclude-filter type="aspectj" 
        expression="cz.instance.transl.model..* &amp;&amp; cz.instance.transl.service..* &amp;&amp; cz.instance.transl.hooks..*"/>   
   </context:component-scan>

Там, где классы в пакетах, таких как cz.instance.transl.service. *, Не должны подвергаться сканированию, но все остальное здесь cz.instance.transl. * Должно сканироваться. Но PathMatchingResourcePatternResolver помечает все как совпадающие ресурсы. То же самое с регулярным выражением.

РЕДАКТИРОВАНИЕ: Если я объявляю context: component-scan в specific.xml, то сканирование даже не запускается, и я получаю NoSuchBeanDefinitionException при зависимостях на основе аннотаций в common.xml.

Кстати: в конфигурации в стиле xml можно иметь много компонентов, которые совместно используют общие компоненты .xml через «ресурс импорта» при загрузке контекста. Как это сделать, когда используется конфигурация контейнера на основе аннотаций?

1 Ответ

2 голосов
/ 03 января 2011

В этом случае вам нужно "или" вместо "и":

<context:exclude-filter type="aspectj"
     expression="cz.instance.transl.model..* || cz.instance.transl.service..* || cz.instance.transl.hooks..*"/>       
...