基本注解
@Component:被该注解标识的类会交由Spring管理(实现Bean的注入),其衍生注解有@Controller (web层使用)、@Service(Service层使用)、@Repository(DAO层使用)。
@Scope:在类上或使用了@Bean标注的方法上使用,标注Bean的作用范围,取值有singleton(单例)和prototype(多例)两种。
@Lazy: 在类上或使用了@Bean标注的方法上使用,标注Bean是否延迟加载,取值true、false。
@PostConstruct:在方法上使用,标注Bean的初始化方法。
@PreDestroy:在方法上使用,标注Bean的销毁方法。
@Bean:注册Bean对象,主要用于配置非自定义bean,标注在方法上。可通过name属性指定bean的名称,若不指定,则默认与标注的方法名相同。@Bean注解默认作用域为单例,可通过@Scope配置。
依赖注入注解
@Value:在字段或方法上使用,用于普通类型的数据注入。
@Autowired:Spring提供的依赖注入注解,在字段或方法上使用,默认按类型进行装配(byType)。默认情况下要求依赖对象必须存在,若需允许为null时,通过设置required属性为false。若想按照名称进行装配(byName),则需搭配@Qualifier注解使用;
@Qualifier:在字段或方法上使用,使依赖注入可按照名称装配(byName)。在给字段注入时,不可单独使用,需要结合@Autowired注解使用;在给方法参数注入时,可以单独使用。
@Resource:由JavaX提供的依赖注入注解,在字段或方法上使用,默认按类型进行装配(byName)。可以通过注解的name属性指定名称,未指定则使用字段名作为名称;查找时首先按照名称查找,当找不到与名称相匹配的bean时,则按类型进行装配。需注意的是name属性一旦指定,则只会按名称进行装配。
配置注解
@Configuration:将类标识为配置类。
@ComponentScan:组件扫描注解,basePackages属性指定需扫描的包。
@PropertySource:加载properties配置文件。
@Import:加载其他配置类。
其他注解
@primary:用于标准相同类型的bean的优先使用权。
@Profile:用于指定环境。