Ho letto di più sul principio dell'inversione del controllo e dell'iniezione delle dipendenze come una sua attuazione e sono abbastanza sicuro di capirlo.
Sembra in sostanza dire "non dichiarare le istanze dei membri della classe all'interno della classe". Piuttosto che le istanze dovrebbero essere passate e assegnate attraverso il costruttore; 'iniettato' nella classe da una fonte esterna.
Se è così semplice, come sembra, perché abbiamo bisogno di framework come spring o guice che implementano questo con le annotazioni? Mi sto perdendo qualcosa di fondamentale qui? Faccio davvero fatica a capire quale sia l'uso dei framework di Iniezione delle dipendenze.
Modifica: circa il 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 sono correlate a DI.