首先我指向类似的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..* && cz.instance.transl.service..* && 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。如何在使用基于注释的容器配置时完成此操作?
答案 0 :(得分:2)
在这种情况下,您需要“或”而非“和”:
<context:exclude-filter type="aspectj"
expression="cz.instance.transl.model..* || cz.instance.transl.service..* || cz.instance.transl.hooks..*"/>