Java · Intermediário · Português · Técnico
injeção por construtor
Forma de injeção de dependência em que as dependências chegam como parâmetros do construtor, ficando final e obrigatórias. É a preferida no Spring.
Onde usar
Aparece em review: 'troque o @Autowired no campo pelo construtor'. Facilita testes sem Spring e deixa as dependências explícitas.
Em código
@Service
class PagamentoService {
private final Gateway gateway;
PagamentoService(Gateway gateway) {
this.gateway = gateway;
}
}Exemplos
Troca o @Autowired no campo por injeção por construtor.
Com injeção por construtor, o teste instancia a classe sem o Spring.
Cuidado
Muitos parâmetros no construtor sinalizam uma classe com responsabilidades demais, não um motivo para voltar à injeção em campo.
Sinônimos
constructor injection
Antônimos
injeção em campo