22、自动装配-方法、构造器位置的自动装配
22.1 @Autowired
标注在方法上
- 标注在方法上,Spring容器创建当前对象,就会调用方法,完成赋值
- 方法使用的参数,自定义类型的值从IOC容器中获取
@Autowired
public void setCar(Car car) {
this.car = car;
}
22.2 @Autowired
标注在构造器
- 默认加在IOC容器中的组件,容器启动会调用无参构造器创建对象,再进行赋值操作
- 构造器也是从IOC容器中获取
- 如果组件只有一个有参构造器,这个有参构造器的
@Autowired
可以省略,也是自动从IOC容器中获取
@Autowired
public Boss(Car car) {
this.car = car;
System.out.println("Boss 的有参构造器...");
}
22.3 @Autowired
标注在参数上
- 参数也是从IOC容器中获取
- @Bean+方法参数;参数从容器中获取,可以省略
@Autowired
public Boss(@Autowired Car car) {
this.car = car;
System.out.println("Boss 的有参构造器...");
}
@Bean
public Color color(@Autowired Car car) {
return new Color(car);
}