【发布时间】:2017-04-26 20:10:38
【问题描述】:
我正在尝试来自这个官方 Spring tutorials 的示例,并且依赖于此代码:
https://github.com/spring-guides/gs-async-method/tree/master/complete
如果您查看AppRunner.java 类的代码,我有两个问题:
- 当服务器启动时,如果我在这个类的构造函数中放置一个断点,似乎在构造函数中,
GitHubLookupService是由 spring 提供的,使用配置的@Servicebean。但是,构造函数上没有@Autowired注释,那么这个构造函数到底是如何使用正确的依赖关系调用的呢?应该是null。
这是 Spring Boot 的自动假设吗?
Spring 是否看到“私有字段 + 构造函数参数,并假设它应该寻找合适的 bean?
是 Spring Framework 还是 Spring boot?
我错过了什么吗?
- 我记得,为 bean / 服务等提供 默认构造函数 是强制性的。为什么这个类 (
AppRunner) 没有默认构造函数? Spring 如何知道它应该使用参数运行构造函数? 是因为它是唯一的构造函数吗?
【问题讨论】:
标签: spring spring-boot dependency-injection autowired