Sobes.tech
Junior — Middle

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.