构造函数上的@Autowired注解的用途是什么?未带注释的构造函数和带注释的构造函数有什么区别?谢谢。
发布于 2020-02-17 02:16:06
自动装配功能使您能够隐式地注入对象依赖。
在没有自动装配的情况下,您必须初始化对象,如下所示:
public class SomeOperation() {
private CarService carService;
public SomeOperation() {
carService = new CarServiceImpl();
}
}但是如果你用@Autowired注解,你就不需要初始化对象了。框架将带来实现carService的类,并使用它初始化您的对象。
public class SomeOperation() {
private CarService carService;
@Autowired
public SomeOperation(CarService carService) {
this.carService = carService;
}
}发布于 2020-02-17 02:17:54
未带注释的构造函数和带注释的构造函数有什么区别?
在Spring3或更低版本中,构造函数上的注释是必需的,以使Spring将构造函数视为实例化bean和注入参数中提供的依赖项的方法。
Spring4和更高版本不需要注释来做到这一点。您只需使用任何参数声明构造函数即可实现此目的。
因此,在最新的Spring版本中,不要用注释弄乱代码:
public Foo(Bar bar){
this.bar = bar;
}https://stackoverflow.com/questions/60251398
复制相似问题