我正在使用SpringBoot
应用程序。我试图在控制器类中注入一个服务对象。我没有在对象和构造函数上方使用@Autowired
但仍然注入了对象。
public class Test {
private Test1 test1;
public Test(Test1 test1) {
this.test1 = test1;
}
}
在上面的示例中,即使我没有在任何地方使用test1
d,@autowire
也会被注入。
有人可以解释一下吗?
答案 0 :(得分:3)
从Spring 4.3
开始,如果你的类中有一个带有依赖关系的constructor
作为构造函数参数,那么spring会自动为你注入它。
从Spring Framework 4.3开始,在这样的一个@Autowired注释 如果目标bean只定义一个,则不再需要构造函数 构造函数开头。但是,如果有几个构造函数 可用,至少有一个必须注释教导容器 一个人可以使用。
public class Test {
private Test1 test1;
public Test(Test1 test1) {
this.test1 = test1;
}
}