我有一个用@Component注释注释的Spring类。我需要将bean注入局部变量。如何将托管bean或EJB var注入@Component Spring类?
@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
答案 0 :(得分:0)
假设您的上下文已设置为注释配置,并且您尝试注入的bean是IAutenticacaoBO
,您只需在setter之前添加@Autowired
注释。
@Autowired
public void setAutenticacaoBO(IAutenticacaoBO autenticacaoBO) {
事实上,您根本不需要设置器,只需在私有属性之前添加@Autowired
注释。
@Autowired
private IAutenticacaoBO autenticacaoBO;
答案 1 :(得分:0)
我知道有三种类型,其中@Autowired
就在提到的成员之前:
不鼓励现场注射,像IDEA这样的IDE在这里呻吟。
Setter注入有点棘手,因为它可以引入递归,因此我使用Constructor注入。
使用Spring> 5(或> 4.3.x?),您不再需要@Autowired
,这一切都会神奇地发生。