基于Spring注释的容器配置上下文:include&排除过滤器

时间:2011-01-03 12:41:36

标签: spring configuration

首先我指向类似的question。我花了一个多小时来设置它,但PathMatchingResourcePatternResolver仍会扫描所有内容。

我有一个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将所有内容标记为匹配资源。与正则表达式相同。

编辑:如果我在specific.xml中声明了context:component-scan,那么扫描甚至都没有启动,我在common.xml中的基于注释的依赖项上得到NoSuchBeanDefinitionException。

顺便说一句:在xml样式配置中,可以有许多组件在加载上下文时通过“import resource”共享common.xml bean。如何在使用基于注释的容器配置时完成此操作?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您需要“或”而非“和”:

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