ExpertiDict

Java · Intermediário · Português · Técnico

injeção por construtor

/ĩʒeˈsɐ̃w poɾ kõstɾuˈtoɾ/substantivo

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

Veja também

Todos os termos de Java