Spring IOC的核心控制反转和依赖注入,以下就是依赖注入核心注解:
@Autowired
@Autowired是按类型匹配
@Bean
public Person person(){
return new Person("张三",18);
}
@Autowired
public Person person;
可能不存在Person实例
@Autowired(required = false)
public Person person;
@Qualifier
上述例子中可能会存在多个Person实例,使用@Qualifier可以让@Autowired指定bean的名称
@Bean
public Person person(){
return new Person("张三",18);
}
@Bean
public Person person1(){
return new Person("李四",19);
}
@Qualifier("person1")
@Autowired
public Person person;
会注入李四这个实例
@Primary
设置装配优先级,首先装配李四这个实例
@Bean
public Person person(){
return new Person("张三",18);
}
@Bean
@Primary
public Person person1(){
return new Person("李四",19);
}
@Autowired
public Person person;
Java规范
JSR250–@Resource
@Resource和@Autowired类似,不过默认按名称装配,不支持@Primary
@Resource(name = "person1")
public Person person;
JSR330–@Inject
需要导入jsr330依赖
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
@Inject和@Autowired功能一样
@Inject
public Person person;