Estive lendo mais sobre o princípio da Inversão de Controle e Injeção de Dependências como uma implementação e tenho certeza de que entendi.
Parece estar basicamente dizendo 'não declare as instanciações de seus alunos dentro da classe'. Em vez disso, as instanciações devem ser passadas e atribuídas pelo construtor; 'injetado' na classe a partir de uma fonte externa.
Se é simples assim, o que parece ser, por que precisamos de estruturas como primavera ou truque que implementam isso com anotações? Estou perdendo algo fundamental aqui? Estou realmente lutando para entender qual é o uso das estruturas de injeção de dependência.
Edit: Sobre a possível duplicata, acredito que minha pergunta é mais exclusiva, pois está perguntando sobre estruturas de DI em geral, não apenas no Spring. O Spring não é apenas uma estrutura de DI, por isso há muitas razões pelas quais alguém gostaria de usar o Spring que não está relacionado ao DI.