当前位置: 首页 > 知识库问答 >
问题:

SpringBoot容器-与@AutoWired和没有@AutoWired有什么区别?

松新
2023-03-14

也许给出问题的最好方法是在下面显示代码:

public class DBConnection {


    private String Host;
    private String username;
    private String password;

    public DBConnection(String Host, String username, String password)
    {
        this.Host = Host;
        this.username = username;
        this.password = password;
    }

    public void addUser(String name)
    {
        System.out.println("add to db");
    }
}

public class UserService {

    public DBConnection dbConnection;

    public UserService(DBConnection dbConnection){

        this.dbConnection = dbConnection;
    }

    public void register()
    {
        dbConnection.addUser("xd");
    }

}

public class UserService {

    public DBConnection dbConnection;

    @Autowired
    public UserService(DBConnection dbConnection){

        this.dbConnection = dbConnection;
    }

    public void register()
    {
        dbConnection.addUser("xd");
    }

}

共有1个答案

汤弘文
2023-03-14

Spring将单个构造函数压缩为@autowired。那就没什么区别了。

如果有多个构造函数,那么您必须将其中一个标记为@autowired,以让Spring知道应该使用哪个ctor实例化bean。

 类似资料:
  • 问题内容: @Inject和@Resource以及@Autowired注释有什么区别? 我们什么时候应该使用它们? 问题答案: 和注释@Inject和有什么区别?@Resource@Autowired 我们什么时候应该使用它们?@Inject与@Autowire与@Resource之间的区别? @Autowired:spring专有注释(与@Inject和@Resource相反),按类型(即,通过

  • 我在spring boot项目中为我们的服务类编写单元测试。当我自动连接正在测试的类时,测试正常运行,当我使用@MockBean insead of @Autowire时,测试失败。 有人能帮我区别一下@MockBean失败的原因吗?另外,在mockito中有一种模仿autowired类(当前类)方法的方法。

  • 几个小时前,我打开了一个问题,它被标记为重复,但是它不是标记问题的重复。 从那以后,我设法完成了一些事情,解决了一些问题,所以我的问题是: 我试图将一个Springbean自动连接到另一个,但是我的问题是@自动连接字段总是空的,这说明它们都是受管理的bean,并且自己可以正确工作。 我发现,通过实现ApplicationContextAware接口,可以在bean中访问ApplicationCon

  • 我在RestController类中有autowired ApplicationContext,因为我需要为收到的每个请求创建一个原型化的bean。 为了创建bean,我尝试了context.getBean(xx),但context没有列出getBean()方法。有没有一种方法,我可以在我的RestController类中获得原型类的bean。我正在以Spring Boot运行这个应用程序。 更新

  • 我想要主持我的第一个基于Java的网站。我了解到有基于云的服务提供网站托管。但是也有一些未知的术语,比如已经可用的容器和Docker。我对GlassFish,Tomcat等容器知之甚少,但对Docker不太了解。那么码头工人到底是什么?

  • 我正在尝试使用springboot访问数据库,但是spring应用程序在下面抛出了一个异常。 创建名为“welcome controller”的bean时出错:注入autowired依赖项失败;嵌套异常为org.springframework.beans.factory.beancreationexception:无法自动连接字段:private org.springframework.jdbc.