Tenho uma interface de um controlador JSF, com a seguinte estrutura
import java.util.List;
import javax.faces.event.ActionEvent;
public interface Controller<E> {
void listar();
List<E> getLista();
void novo();
void salvar();
void editar(ActionEvent evento);
void excluir(ActionEvent evento);
}
Tenho 2 classes implementando essa interface, onde se faz uso de Repository, exemplo:
public class Controller1Impl implements Controller<Teste> {
@Autowired
private RepositoryExemplo exemplo;
}
public class Controller2Impl implements Controller<Teste> {
@Autowired
private RepositoryExemplo exemplo;
}
Estou usando o JoinFaces e tenho um controlador, da seguinte forma:
@Named
@ViewScoped
public class Controlador {
private Controller<?> controller;
@PostConstruct
public void init() {
controller = new Controller1Impl();
}
}
Dependendo do parâmetro que recebo pelo URL, instancio o Controller1Impl ou Controller2Impl, o problema é que os repository do objeto Controller1Impl ou Controller2Impl ficam null, como devo fazer para injetar corretamente no objeto que instancio?