我使用的是Spring,我有很长的子包列表,我是否必须在<context:component-scan>
标记中逐一指定它们?
<context:component-scan base-package="com.fooapp.mainpackage,
com.fooapp.mainpackage.subpackage1,
com.fooapp.mainpackage.subpackage2,
com.fooapp.mainpackage.subpackage3" />
答案 0 :(得分:23)
组件扫描支持包层次结构,因此这应该有效:
<context:component-scan base-package="com.fooapp.mainpackage"/>
这样可以轻松快捷地验证自己 - 你试过吗?
答案 1 :(得分:5)
此外,我还要添加默认情况下使用@Component
,@Repository
,@Service
,@Controller
注释的类,或者使用@注释的自定义注释组件是唯一检测到的候选组件。
您可以通过应用include-filter
或exclude-filter
例如:
<context:component-scan base-package="com.vanilla">
<context:exclude-filter
type="annotation"
expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
它将排除所有@Repository注释。