Sobes.tech
Junior — Middle

Explique o conceito de injeção de dependências no Spring e como ela é implementada

sobes.tech IA

Resposta da IA

A injeção de dependências (Dependency Injection, DI) no Spring é uma forma de gerir as dependências dos objetos, na qual o contêiner Spring é responsável por criar e ligar os objetos, em vez de o próprio objeto criar ou procurar as suas dependências.

As principais formas de implementar DI no Spring:

  1. Através do construtor — as dependências são passadas através dos parâmetros do construtor.
  2. Através de setters — as dependências são definidas através de métodos setters.
  3. Através de campos com a anotação @Autowired — o Spring injeta automaticamente os beans necessários.

Exemplo de injeção através de anotação:

@Component
public class UserService {
    private final UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

Aqui, o Spring criará automaticamente uma instância de UserRepository e a passará ao construtor de UserService. Isto facilita a troca de implementações de dependências, simplifica os testes e aumenta a modularidade do código.