@Bean
功能概述
- 用于创建一个由SpringIoc容器管理的新对象,@Bean适用于方法级别的上的注解。
- 在@Configuration、@Component注解类使用。
属性说明
- value: bean别名,value与name同时设置时,名称名称必需一致
- name: bean名称,默认使用方法名称做为bean名称
- autowire: 自动装配,默认不开启
- initMethod: bean 初始化方法
- destroyMethod: bean 销毁方法
@ComponentScan
功能概述
- 装配带有@Controller、@Service、@Repository、@Component注解的类到Spirng容器中。
属性说明
- basePackages: 指定要扫描的包,
- basePackageClasses: 指定要扫描的类
- excludeFilters: Filter[], 指定扫描时候按照什么规则排除哪些组件
- includeFilters: Filter[], 指定扫描的时候只要包含哪些组件,需要将-
- useDefaultFilters: 设置为false,才能生效
- useDefaultFilters: 默认true,默认规则扫描所有
@Filter
** 功能描述 **
- 声明类型过滤器,包含筛选或排除筛选
** 属性说明 **
- FilterType.ANNOTATION: 用给定注释标记的筛选
- FilterType.ASPECTJ:匹配给定AspectJ类型模式表达式的过滤器
- FilterType.ASSIGNABLE_TYPE:筛选给定类型的对象
- FilterType.CUSTOM:使用给定的自定义TypeFilter器实现筛选
- FilterType.REGEX:与给定的正则表达式匹配的过滤
- classes: 过滤条件表达式
@ComponentScans
功能概述
- 配置多个ComponentScan时使用;java8以下版本使用
属性说明
- value: ComponentScan[],指定多个ComponentScan
@Scpoe
功能概述
- Bean作用域,默认作用域是单例模式
属性说明
- singleton: 单例模式
- prototype: 原型模式,每次获取bean实例的时候才会创建对象
- request: 每一次HTTP请求都会产生一个新的bean
- session: 每一次HTTP请求都会产生一个新的bean,当前HTTP session内有效
- global session: 作用域类似于标准的HTTP Session作用域,仅在基于portlet的web应用中才有意义
@Lazy
功能描述
- 容器启动的时候不自动创建对象,第一次获取的时候创建对象
属性说明
- value: true,懒加载; false,立即加载
@Conditional
功能描述
- 条件注解,根据代码中设置的条件装载不同的bean
属性说明
- value: 设置实现Condition接口类,在设置条件注解之前,先要把装载的bean类去实现Condition接口
@import
功能描述
-注解可以普通类导入到 IoC容器中
属性说明
- 按全类名导入,默认ID是全类名
- 实现接口ImportSelector: 返回需要导入的组件的全类名数组
- ImportBeanDefinitionRegistrar: 手动注册bean到容器中
FactoryBean
功能说明
- 使用Spring提供的FactoryBean(工厂Bean);非注解,实现FactoryBean接口
属性描述
- 默认获取到的是工厂Bean调用getObject创建的对象
- 要获取工厂Bean本身,我们需要给ID的前面加上&符号
@Value
功能说明
- 使用@value赋值
属性说明
-基本数值
-SpEL赋值, #{}
-获取对应属性文件中定义的属性值,可以写 ${}
@PropertiesSource
功能说明
-读取配置文件中的数据
** 属性说明 **
-file: 加载路径路径下载的配置文件
-classpath: 加载类路径的下的配置文件
@Autowired
功能说明
- Bean自动注入
** 属性说明 **
- 默认优先按照类型去容器中找对应的组件
- 相同类型的组件,再将属性的名称作为组件的id去容器中查找
- required: 是否必需
@Qualifier
功能说明
- 制定需要装配组件的id
属性说明
- value:id名称
@primary
功能说明
- 默认使用首选的Bean
@Resource
功能说明
- Bean自动注入, 默认是按照名称进行装配
- 不支持@Primary与@Autowired(reqiured=false)
- java规范注解,JSR250
属性说明
- name: 容器ID名称
@Inject
功能说明
- Bean自动注入, 支持@Primary,不支持@Autowired(reqiured=false)
- 需要导入javax inject依赖
- java规范注解, JSR330
@ Profile
功能说明
- 制定组件在哪个环境的情况下才能被注册到容器中
属性说明
- value: 制定环境名称