在弹簧启动应用程序中自动连接对象

时间:2018-03-22 06:11:18

标签: spring spring-boot

我正在使用SpringBoot应用程序。我试图在控制器类中注入一个服务对象。我没有在对象和构造函数上方使用@Autowired但仍然注入了对象。

public class Test {

    private Test1 test1;

    public Test(Test1 test1) {
        this.test1 = test1;
    }
}

在上面的示例中,即使我没有在任何地方使用test1 d,@autowire也会被注入。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:3)

Spring 4.3开始,如果你的类中有一个带有依赖关系的constructor作为构造函数参数,那么spring会自动为你注入它。

根据Spring @Autowired docs

  

从Spring Framework 4.3开始,在这样的一个@Autowired注释   如果目标bean只定义一个,则不再需要构造函数   构造函数开头。但是,如果有几个构造函数   可用,至少有一个必须注释教导容器   一个人可以使用。

public class Test {

    private Test1 test1;

    public Test(Test1 test1) {
        this.test1 = test1;
    }
}