
19 - Injeção de dependências via construtor
A injeção de dependência via construtor é considerada uma das formas mais recomendadas, pois:
- Garante que a dependência seja obrigatória no momento da criação do objeto.
- Facilita a imutabilidade dos atributos.
- É mais adequada para testes unitários, pois permite passar dependências diretamente pelo construtor.
Exemplo no Projeto
private final PessoaRepositorio pr;
@Autowired
public PessoaControle(PessoaRepositorio pr) {
this.pr = pr;
}
Explicação
- O atributo
pr
é declarado comofinal
, reforçando que será atribuído apenas uma vez. - O Spring identifica o construtor e injeta automaticamente a dependência
PessoaRepositorio
. - Se a classe possui apenas um construtor, a anotação
@Autowired
pode ser omitida, pois o Spring já o utiliza por padrão.
Vantagens
- Maior segurança quanto à inicialização da dependência.
- Evita
NullPointerException
em caso de não injeção. - Melhor prática recomendada pela equipe do Spring e pela comunidade.
Dica: Sempre que possível, prefira a injeção via construtor, especialmente em projetos maiores e com múltiplas dependências.
Clique aqui para se tornar membro do canal
Abaixo segue nossa aula no YouTube: