本文将会讲到SpringBoot的IOC模块下的注解进行总结,主要目的是为了方便之后查找注解和快速应用。
将会以:组件注册,生命周期,属性赋值,自动装配来进行区分。示例代码的注解很重要
一、组件注册
1、@Configuration:标注在类上。主要是告诉 Spring 这是一个配置类。
//告诉 spring 这是一个配置类
@Configuration
public class MainConfig2 {
}
2、@ComponentScan:标注在类上。指定注解扫描的方式及范围。
FilterType.ANNOTATION 按注解
FilterType.ASSIGNABLE_TYPE 按给定的类型
FilterType.REGEX 使用正则表达式
FilterType.CUSTOM 自定义规则,必须实现 TypeFilter 这个接口
1)、@excludeFilters = @Filter[ ],指定扫描按扫描规则 排除 哪些组件
@Configuration
@ComponentScan(value="com.duojia", excludeFilters = {
@Filter(type = FilterType.ANNOTATION, classes = {Controller.class}),
@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {BookService.class}),
@Filter(type = FilterType.CUSTOM, classes = MyTypeFilter.class)
})
public class MainConfig {
// Controller 注解不扫描
// BookService 类不扫描
// MyTypeFilter 需要实现 TypeFilter 接口
}
public class MyTypeFilter implements TypeFilter {
/**
* metadataReader,读取当前类的扫描的类的信息
* metadataReaderFactory,获取到其他类的信息
* return 返回值