背景基础:在类文件里面使用注解,如何告诉ioc容器自己文件有这个注解呢?通过扫描的方式,让ioc容器对项目下所有src文件进行扫描,要是有些文件我不想让ioc容器扫描进去呢?
context:exclude-filter
<context:exclude-filter>:扫描的时候可以排除一些不要的组件
<context:component-scan base-package="com.atshiyou">
<context:exclude-filter type="assignable" expression="com.atshiyou.dao.BookDao"/>
</context:component-scan>
代码里有type和expression,分析一下:(后面三个只当了解)
【type=“annotation”】 :指定排除规则;按照注解进行排除。标注了指定注解的组件不要
expression="":注解的全类名
【type=“assignable”】:指定排除某个具体的类,按照类排除,类的全类名
type=“aspectj”:后来aspectj表达式
type=“custom”:自定义,自己写代码决定哪些使用
type=“regex”:还可以写正则表达式
context:include-filter
可以指定只扫描哪些 ,但是一定要先禁用掉默认规则,true改为false 。默认就是全部扫描进入
<context:component-scan base-package="com.atshiyou" use-default-filters="false">
<!-- 指定只扫描哪些 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>```
小细节:
加入注解的类会有一个小S,没加入的就没有:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200731090539377.png)