2011-01-03 5 views
0

сначала я указываю на аналогичные question. Я потратил больше часа, чтобы настроить это, но PathMatchingResourcePatternResolver все еще сканирует все.Контент конфигурации контейнера на основе Spring: включить и исключить фильтры

У меня есть один common.xml (который импортируется из specific.xml) и файл определения specific.xml bean. Контекст загружается из 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 отмечает все как соответствующие ресурсы. То же самое с регулярным выражением.

EDITED: Если я объявляю контекст: компонент-сканирование в specific.xml, то сканирование даже не запускается, и я получаю NoSuchBeanDefinitionException для зависимостей на основе аннотаций в common.xml.

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

ответ

2

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

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

Тем не менее сканирование всего. Это не имеет смысла для меня, мне нужно исключить все эти три пакета. «Исключить это или это или это действительно запутывает :-) – lisak

+0

@lisak: Исключить фильтр не исключает пакеты, он исключает классы. Он читает: exclude class, если он принадлежит к тому или иному пакету. – axtavt

+0

Существует проблема с «ресурсом импорта», кажется, что контекст: компонент-сканирование применяется к конкретному xml с определением bean-компонента, и если есть зависимость в импортированном ресурсе, который не объявлен там, он не работает в NoSuchBeanDefinitionException – lisak

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