Ho letto di più sul principio di Inversion of Control e Dependency Injection come implementazione di esso e sono abbastanza sicuro di averlo capito.
Sembra fondamentalmente dire "non dichiarare le istanze dei membri della classe all'interno della classe". Piuttosto che le istanze dovrebbero essere trasferite e assegnate tramite il costruttore; 'iniettato' nella classe da una fonte esterna.
Se è così semplice, che sembra essere, perché abbiamo bisogno di framework come spring o guice che implementino questo con annotazioni? Mi manca qualcosa di fondamentale qui? Sto davvero cercando di capire quale sia l'uso dei framework di Dependency Injection.
Modifica: a proposito del possibile duplicato, credo che la mia domanda sia più unica in quanto si tratta di framework DI in generale, non solo di Spring. Spring non è solo un framework DI, quindi ci sono molte ragioni per cui qualcuno vorrebbe usare Spring che non è correlato a DI.