Explique o conceito de inversão de controlo e a sua aplicação no framework Spring
sobes.tech IA
Resposta da IA
Inversão de controlo (Inversion of Control, IoC) é um princípio pelo qual a gestão da criação e ligação de objetos é transferida para um contêiner ou framework externo, em vez de ser implementada diretamente no código da aplicação. Isto permite reduzir o acoplamento entre componentes e aumentar a flexibilidade.
No Spring, IoC é implementado através de um contêiner que gere o ciclo de vida e as dependências dos objetos (beans). Em vez de criar objetos manualmente, o programador descreve as dependências e o Spring injeta automaticamente os componentes necessários.
Exemplo de injeção de dependência usando anotação:
@Component
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
Aqui, o Spring criará e passará uma instância de UserRepository para o UserService, gerindo as dependências automaticamente.