Benannte Subkomponenten

public class A {
   public interface Config extends PolymorphicConfiguration<A> {
      B.Config getBConfig();
   }

   B b;

   public A(InstantiationContext context, A.Config config) {
      this.b = (B) context.getInstance(config.getBConfig());
   }
}

public class B {
   public interface Config extends PolymorphicConfiguration<B> {
      ...
   }

   public B(InstantiationContext context, B.Config config) {
      ...
   }
}

In obigem Beispiel enthält die Konfiguration der Komponente A eine Referenz auf eine Konfiguration für eine Komponente B (B.Config). Die Komponente A selbst benötigt für ihre Instanziierung aber eine Referenz auf eine Subcomponente B. Die Auflösung von "Konfiguration von B" (B.Config) zu einer Referenz auf die konfigurierte Subkomponente B erfolgt über den Instanziierungskontext InstantiationContext. Der Instanziierungskontext entscheidet darüber, ob eine neue Instanz von B angelegt werden muss, oder ob eine bereits erzeugte Instanz von B mit derselben Konfiguration bereits existiert und wiederverwendet werden kann (siehe Mehrfachverwendung von Komponenten).