当我运行de application并尝试执行signUp时,下面类中的字段usuario
保持值null。谁能告诉我这里有什么问题?我尝试使用注释@Component作为类,并使用@Transaction作为方法,但问题仍然存在。我也尝试使用UsuarioService而不是我的Dao类,同样的问题也会发生。
public class AccountConnectionSignUp implements ConnectionSignUp {
static final Logger logger = LogManager.getLogger(AccountConnectionSignUp.class.getName());
@Autowired
private UsuarioHome usuario;
@Override
public String execute(Connection<?> connection) {
logger.debug("Entrando no medodo AccountConnectionSignUp.execute(...)");
UserProfile profile = connection.fetchUserProfile();
logger.debug("profile = "+profile.getUsername());
Usuario account = new Usuario(profile.getUsername(), profile.getFirstName(), profile.getLastName(), profile.getEmail());
logger.debug("account = "+account.getLogin());
if(usuario != null) {
if(usuario.persist(account)) {
logger.debug("cadastro efetuado com sucesso");
logger.debug("account = "+account.getId());
return account.getLogin();
}
else {
logger.debug("cadastro nao efetuado");
return null;
}
}
else {
logger.debug("usuario esta com valor null");
return null;
}
}
}
答案 0 :(得分:0)
如果usuario是一个界面,你有两个实现这个的Beans,你必须添加注释@Qualifier(&#34; class&#34;)
答案 1 :(得分:-4)
我解决了这个问题,将字段声明更改为:
private UsuarioService usuario;
public AccountConnectionSignUp() {
this.usuario = new UsuarioService();
}
不需要@Autowired。