Bem, eu tô començando a mexer com Spring MVC e fui ler sobre IoC e DI. A dúvida surgiu porque há 3 métodos de injetar dependêcias:
- Por meio de construtor
- Por meio de interface
- Por meio de propriedade
Seguinte, eu tava vendo alguns exemplos e me deparei com alguns que ele passa o objeto como parametro da classe construtor, e alguns que usam interface. Agora a dúvida… quando eu faço a DI via interface, eu ainda preciso o objeto no construtor como parâmetro?
/* Criação da interface */
public interface ObjDAO{
public void salvar(Object obj);
}
@Repository
public class ObjDAOImpl implements ObjDAO{
private ObjDAOImpl(){}
@Override
public void salvar(Object obj){
// Lógica pra persistir dados
}
}
@Controller
public class ObjController{
/* Aqui tô usando a interface */
private ObjDAO objDao;
/* E aqui, passando a instância da interface no construtor
Eu não poderia usaria a annotation lá no private ObjDAO objDao ? É essa a dúvida*/
@Autowired
private ObjController(ObjDAO objDao){
this.objDao = objDao;
}
/* restante dos métodos */
}