Spring中applicationContext.xml中有个标签<context:component-scan>通过扫描文件的方式进行注入。
使用<context:component-scan>之后<context:annotation-conf>标签就没什么用了,因为<context:component-scan>标签已经包含了注释扫描功能
具体使用如下:
<context:component-scan base-package="com.foo" use-default-filters="false">
<context:include-filter type="regex" expression="com.foo.bar.*Config"/>
<context:include-filter type="regex" expression="com.foo.config.*"/>
</context:component-scan>
context:component-scan>有两个子标签:<context:include-filter/>和<context:exclude-filter/>分别表示引入和排除注入的过滤
子标签的type属性的取值有:
Filter Type | Examples Expression | Description |
annotation | org.example.SomeAnnotation | 符合SomeAnnoation的target class 根据注释 |
assignable | org.example.SomeClass | 指定class或interface的全名 |
aspectj | org.example..*Service+ | AspectJ語法 |
regex | org\.example\.Default.* | Regelar Expression |
custom | org.example.MyTypeFilter | Spring3新增自訂Type,實作org.springframework.core.type.TypeFilter |