Es soll eine Entkopplung von nutzenden Komponenten und konfigurierten Diensten erreicht werden, bei der die Komponenten weder wissen müssen, wie die Dienste heißen, noch wie sie zu beschaffen sind.

siehe: GitHub - ReadMe, DI, PK

Beispiel

Das PrintService-Beispiel zeigt die 3 von Martin Fowler identifizierten Arten der Dependency Injection.

Unten sehen sie ein Sequenzdiagramm der Setter-Injection. Annotierte Attribute, wie sie heute häufig anzutreffen sind, fallen ebenfalls in diese Kategorie, getreu dem Uniform Access Principle.

Um das Zusammenspiel im Detail beobachten zu können, setzen Sie den log-level auf DEBUG in der logback.xml und führen den zugehörigen TestCase aus.

Ressourcen