Nas aulas feitas de vraptor 4 + CDI pede-se que para injetar dependências além de utilizar o @Inject devemos criar um construtor com e sem parâmetro, ficando um pequeno exemplo:
@Inject
private Dao dao;
public Controller(Dao dao) {
this.dao = dao;
}
@Deprecated
public Controller() {
}
Recentemente tenho pesquisado e estudo um pouco mais sobre o CDI, onde vi que não tem necessidade de tais construtores bastando apenas informar o @Inject
@Inject
private Dao dao;
Nos meus projetos retirei todos os construtores e tudo continuou funcionando perfeitamente, até porque se estou usando um framework para injetar dependência é porque eu quero facilidade então nada mais justo do que apenas utilizar o @Inject.
Queria saber por que nas aulas é pedido que crie os construtores.