ComponentScan的作用:指定要扫描的包
直接用代码说话吧!
操作:新建cap2文件夹,新建Cap2MainConfig.java配置类
1,@ComponentScan(value="com.caojiulu.cap2")表示扫描此目录下的包
测试:
新建Cap2MainConfig2配置类
新建dao, service,controller
在Cap2MainConfig2加入配置: @Filter: 扫描规则
@ComponentScan(value="com.caojiulu.cap2",includeFilters={ @Filter(type=FilterType.ANNOTATION,classes={Controller.class}), @Filter(type=FilterType.ASSIGNABLE_TYPE,classes={Cap2Service.class})
},useDefaultFilters=false) //默认是true,扫描所有组件,要改成false,使用自定义扫描范围
*/
//@ComponentScan value:指定要扫描的包
//excludeFilters = Filter[] 指定扫描的时候按照什么规则排除那些组件
//includeFilters = Filter[] 指定扫描的时候只需要包含哪些组件
//useDefaultFilters = false 默认是true,扫描所有组件,要改成false
//----扫描规则如下
//FilterType.ANNOTATION:按照注解
//FilterType.ASSIGNABLE_TYPE:按照给定的类型;比如按BookService类型
//FilterType.ASPECTJ:使用ASPECTJ表达式
//FilterType.REGEX:使用正则指定
//FilterType.CUSTOM:使用自定义规则,自已写类,实现TypeFilter接口
//FilterType.CUSTOM的例子,常用
先新增自定义过滤规则类: