
18 - Injeção de dependências via setter
Além da injeção via atributo, o Spring também permite a injeção de dependências através de métodos setters. Essa abordagem é útil quando queremos mais controle sobre o momento da injeção ou quando o atributo pode ser opcional.
Veja como aplicamos isso em nosso projeto:
private PessoaRepositorio pr;
@Autowired
public void setPessoaRepositorio(PessoaRepositorio pr) {
this.pr = pr;
}
Como funciona
- O Spring encontra o método
setPessoaRepositorio
durante a criação da instância da classe. - Como o método está anotado com
@Autowired
, o Spring fornece automaticamente um objeto do tipoPessoaRepositorio
e o injeta no método. - O atributo
pr
é então inicializado com o valor fornecido.
Vantagens
- Permite injeção condicional ou opcional.
- Facilita a substituição da dependência durante testes.
- Mais flexível em cenários onde o objeto pode ser alterado em tempo de execução.
Importante: Certifique-se de manter o método público e com apenas um parâmetro, para que o Spring possa injetar corretamente a dependência.
Clique aqui para se tornar membro do canal
Abaixo segue nossa aula no YouTube: