测试了下spring 包扫描 :
<context:component-scan base-package="com.long.apple.scantest" use-default-filters="true">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
其中use-default-filters参数默认为true
也就说可以扫描@controller和@service/@Repository注解的bean;
如果设置use-default-filters参数默认为false就不再加载任何bean;
对以上情况也有列外,就是用
通过exclude-filter 进行黑名单过滤;
通过include-filter 进行白名单过滤;
也就说:如果参数use-default-filters设置为false只加载include-filter类型的bean,其它bean不再加载;
如果参数use-default-filters设置为true,则全部加载@controller和@service\@respository 类型的bean,排除exclude-filter类型的bean;
这样看来如果默认use-default-filters为true,再加include-filter控制,如果控制范围是@controller和@service\@respository 类型就没意义,当然可以加include-filter控制其它注解也实例化,比如自己实现的一个注解@zhujie