Spring在构造函数中注入依赖项,而不使用@Autowired注释
我正在用这个官方的Spring中的示例进行实验,并且依赖于以下代码:Spring在构造函数中注入依赖项,而不使用@Autowired注释,spring,spring-boot,dependency-injection,autowired,Spring,Spring Boot,Dependency Injection,Autowired,我正在用这个官方的Spring中的示例进行实验,并且依赖于以下代码: 如果您查看AppRunner.java类上的代码,我有两个问题: 当服务器启动时,如果我在这个类的构造函数中放置一个断点,就像在构造函数中一样,GitHubLookupService是由spring使用配置的@Servicebean提供的。但是,构造函数上没有@Autowired注释,因此如何使用正确的依赖项调用此构造函数?它应该是null 是否自动假定为弹簧启动? Spring是否看到“private field+cons
如果您查看
AppRunner.java
类上的代码,我有两个问题:
GitHubLookupService
是由spring使用配置的@Service
bean提供的。但是,构造函数上没有@Autowired
注释,因此如何使用正确的依赖项调用此构造函数?它应该是null
Spring是否看到“private field+constructor”参数,并假定它应该查找适当的bean?
它是Spring框架还是Spring引导?
我错过什么了吗
AppRunner
)没有默认构造函数?
Spring如何知道它应该使用参数运行构造函数?
是因为它是唯一的构造函数吗@Autowired
注释,Spring将使用该构造函数并注入所有必要的依赖项
关于默认构造函数:您需要默认构造函数,当您有多个构造函数时,需要一个带有@Autowired
注释的构造函数,或者类中只有一个带或不带@Autowired
注释的构造函数
阅读Spring官方文档中的一章了解更多信息。与文档更相关的链接是,我有一个类似的问题,只是我的类没有被注释为Bean!事实上,它根本没有被注释!Spring仍然试图自动连接构造函数,但失败了,因为没有找到与构造函数参数。但是该类扩展了
PropertySource
。这可能是原因吗?有没有办法避免自动连接?