Frage

Gibt es eine Möglichkeit Lookup Method Injection mit Anmerkungen zu benutzen?

In Anbetracht der folgenden Klasse:

@Service
public abstract class A {


    protected abstract createB();

}

Um es an der Arbeit ich folgende im Frühjahr applicationContext.xml erklären muß:

<bean id="b" class="com.xyz.B">
</bean>

<bean id="a" class="com.xyz.A">
    <lookup-method name="createB" bean="b"/>
</bean>

Auch wenn ich <context:component-scan base> verwende ich habe es in der XML auch zu erklären. Nicht ein guter Ansatz, denke ich.

Wie es mit Anmerkungen zu tun?

War es hilfreich?

Lösung

Es ist möglich, javax.inject.Provider zu verwenden. Alle Dank geht an Phil Webb .

public class MySingleton {

  @Autowired
  private Provider<MyPrototype> myPrototype;

  public void operation() {
    MyPrototype instance = myPrototype.get();
    // do something with the instance
  }

}

Andere Tipps

Es ist auch möglich, mit org.springframework.beans.factory.ObjectFactory, wenn Sie mit Frühlings-API halten mögen

public class MySingleton {

  @Autowired
  private ObjectFactory<MyPrototype> myPrototypeFactory;

  public void operation() {
    MyPrototype instance = myPrototypeFactory.getObject();
    // do something with the instance
  }
}

Sie können mehr in der

Schließlich: Diskussion auf, wie es zu benutzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top