如何将管理豆注入春季课程@Component?



我有一个用@Component注释注释的Spring类。 我需要将 bean 注入到局部变量中。如何将托管 bean 或 EJB var 注入@Component春季类?

@Component
public class AppInternetAuthenticationProvider implements AuthenticationProvider, Serializable {
private IAutenticacaoBO autenticacaoBO;
public void setAutenticacaoBO(IAutenticacaoBO autenticacaoBO) {
this.autenticacaoBO = autenticacaoBO;
}
public AppInternetAuthenticationProvider() {
}
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
// I need inject here

假设您的上下文是为注释配置设置的,并且您尝试注入的 bean 是IAutenticacaoBO您只需要在 setter 之前添加@Autowired注释即可。

@Autowired
public void setAutenticacaoBO(IAutenticacaoBO autenticacaoBO) {

事实上,您不一定需要 setter,您只需在私有属性之前添加@Autowired注释即可。

@Autowired
private IAutenticacaoBO autenticacaoBO;

我知道有三种类型,其中@Autowired就在提到的成员之前:

  1. 场注入
  2. 二传手注射
  3. 构造函数注入

不鼓励现场注入,像IDEA这样的IDE在这里呻吟。 二传手注入有点棘手,因为可以引入递归,因此我选择了构造函数注入。 有了Spring>5(或>4.3.x?(,你不再需要@Autowired,这一切都会神奇地发生。

最新更新