Springboot @ComponentScan 详解
1、@ComponentScan注解的作用@ComponentScan注解一般和@Configuration注解一起使用,主要的作用就是定义包扫描的规则,然后根据定义的规则找出哪些需类需要自动装配到spring的bean容器中,然后交由spring进行统一管理。说明:针对标注了@Controller、@Service、@Repository、@Component 的类都可以别spring扫描到。2
·
1、@ComponentScan注解的作用
@ComponentScan注解一般和@Configuration注解一起使用,主要的作用就是定义包扫描的规则,然后根据定义的规则找出哪些需类需要自动装配到spring的bean容器中,然后交由spring进行统一管理。
说明:针对标注了@Controller、@Service、@Repository、@Component 的类都可以别spring扫描到。
2、@ComponentScan注解属性介绍
value
指定要扫描的包路径
excludeFilters(排除规则)
excludeFilters=Filter[] 指定包扫描的时候根据规则指定要排除的组件
includeFilters(包含规则)
includeFilters =Filter[] 指定包扫描的时候根据规则指定要包含的组件.
注意:要设置useDefaultFilters = false(系统默认为true,需要手动设置) includeFilters包含过滤规则才会生效。
FilterType属性
FilterType.ANNOTATION
:按照注解过滤FilterType.ASSIGNABLE_TYPE
:按照给定的类型过滤FilterType.ASPECTJ
:按照ASPECTJ表达式过滤FilterType.REGEX
:按照正则表达式过滤FilterType.CUSTOM
:按照自定义规则过滤
classes和value属性为过滤器的参数,必须为class数组,类只能为以下三种类型:
ANNOTATION
参数为注解类,如 Controller.class, Service.class,Repository.classASSIGNABLE_TYPE
参数为类,如 SchoolDao.classCUSTOM
参数为实现 TypeFilter 接口的类 ,如 MyTypeFilter.class
代码
@Configuration
@ComponentScan(basePackages = "com.learn",excludeFilters = {
@Filter(type = FilterType.ANNOTATION,classes = {Controller.class,Service.class})
})
public class SpringConfig {
}
更多推荐
已为社区贡献1条内容
所有评论(0)