22自动装配-方法构造器位置的自动装配
Posted grand-jon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22自动装配-方法构造器位置的自动装配相关的知识,希望对你有一定的参考价值。
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);
}
以上是关于22自动装配-方法构造器位置的自动装配的主要内容,如果未能解决你的问题,请参考以下文章
15spring注解学习(自动装配)——@Autowired标注在方法构造器和参数位置上
Junit Mockito NullPointerException for Mock 用于基于构造函数的自动装配