동적으로 인터페이스 Hello 구현을 선택하는 제작자를 만들고 싶습니다.CDI 프로듀서의 원인 stackoverflow
public interface Hello extends Serializable{
public String sayHello();
}
안녕하세요 Impls :
public class HelloBanned implements Hello{
@Override
public String sayHello() {
return "Get out!!!";
}
}
public class HelloCoolGuy implements Hello{
@Override
public String sayHello() {
return "Welcome";
}
}
내 세션빈, 내가 생산자 방식을 원하는 : 유래에
public class UsuarioHandler implements Serializable{
@Inject
private Usuario usuario;
@Inject
@Preferred
Hello hello;
@EJB
UsuarioBeanLocal userEJB;
public String login(){
usuario.setId(2L);
return userEJB.efetuarLogin(usuario);
}
@Produces
@Preferred
public Hello getHello(@New HelloBanned ban,
@New HelloCoolGuy cool){
if (usuario.isBannedFlag()){
return ban;
}
return cool;
}
}
이 코드의 결과. 나는 그것을 일으킬 수있는 것을 찾을 수 없습니다.
스택 트레이스 –