spring生成和装配bean有三种方式:自动,javaConfig,XML。自动装配和基于java的装配都是通过注释进行的,下面来总结一下前两种方式中注释的用法;
spring自动扫描和自动装配
- @Component 作用于bean类,标注该类为一个bean
- @AutoWired 作用于bean类的构造器方法或设置方法,标注为自动注入
- @Configuration 作用于配置类,标注该类为一个配置类
- @ComponentScan 作用于配置类,启动自动扫描
- @Primary 作用于bean类,设置该类为bean装配时的首选类,解决自动装配冲突
- @Qualifier("name") 作用于:
-
- bean类:创建该类的限定符(bean的限定符如果没指定,则默认为bean的ID(bean的ID在自动扫描中为类名首字母小写形式,在javaConfig中为@bean方法名字首字母小写形式))
- @AutoWired注入方法:用于指定自动装配bean的限定符,限定自动装配的bean,解决自动装配歧义冲突
javaConfig配置bean
- @Configuration 标识该类为配置类
- @bean 作用于方法,标识该方法返回一个bean
- @Profile("dev") 标识于@Configuration类或@bean方法,设置bean的Profile激活方式
- @Conditional() 作用于@bean方法,控制bean的条件生成
- @Qualifier("name") 作用于@bean方法,指定要注入到该bean的另一个bean的限制符
以上注解按照功能可以分为三个类别:
- bean的构造和装配:@Component @AutoWired @bean @Configuration @ComponentScan
- bean的条件装配: @Profile @Conditional
- 解决bean装配歧义冲突 @Primary @Qualifier