Gre*_*reg 6 java spring autowired spring-boot
大家好 我在使用Springboot时有一个关于将服务自动装配到类中的问题。我在Internet以及Springboot规范中看到的所有示例都具有类似的功能(摘自Springboot 1.5.7版规范):
package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;
@Autowired
public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssessor = riskAssessor;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
这是一个通过@Autowiring构造函数通过其构造函数注入属性的类。另一种形式是@Autowire这样的属性:
@Autowired
private final RiskAssessor riskAssessor
Run Code Online (Sandbox Code Playgroud)
但是,在我工作的地方,要使这两种方法都起作用,我被告知我需要使用此方法:
applicationContext.getAutowireCapableBeanFactory().autowireBean(Object.class)
Run Code Online (Sandbox Code Playgroud)
他们告诉我,为了使@Autowired批注起作用,我需要这样做。
现在我对您的问题是:为什么没有简单的注释可以使@Autowire正常运行?(类似于@AutowiredClass)。上面的方法太冗长且难以记住,因此肯定有一种更好的方法可以使@Autowired在类上工作以注入服务,就像我们在Grails中所做的那样(我们刚才说过def someService,它会自动注入)。
小智 5
如果您想@Autowired在您的 spring-boot 应用程序中正确使用,您必须执行以下步骤:
@SpringBootApplication到您的主类@Service或@Component注释到要注入的类RestService您需要对的实现进行注释,以便@ServiceSpring能够拾取它。@Component
@Service
public class MyRiskAssessorImpl implements RiskAssessor {
///
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14882 次 |
| 最近记录: |