我有一个用@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
就在提到的成员之前:
- 场注入
- 二传手注射
- 构造函数注入
不鼓励现场注入,像IDEA这样的IDE在这里呻吟。 二传手注入有点棘手,因为可以引入递归,因此我选择了构造函数注入。 有了Spring>5(或>4.3.x?(,你不再需要@Autowired
,这一切都会神奇地发生。