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:
- Através do construtor — as dependências são passadas através dos parâmetros do construtor.
- Através de setters — as dependências são definidas através de métodos setters.
- 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.