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 tipo PessoaRepositorio 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: