Как сделать внедрение метода весеннего поиска с аннотациями?

StackOverflow https://stackoverflow.com/questions/3891997

Вопрос

Есть ли способ использовать впрыск метода поиска с использованием аннотаций?

Учитывая следующий класс:

@Service
public abstract class A {


    protected abstract createB();

}

Чтобы получить его на работу, я должен объявить весной ApplicationContext.xml следующее:

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

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

Хотя я использую <context:component-scan base> Я должен объявить его также в XML. Я не думаю, что я думаю.

Как сделать это с аннотациями?

Это было полезно?

Решение

Можно использовать javax.inject.Provider. Отказ Все спасибо Фил Уэбб..

public class MySingleton {

  @Autowired
  private Provider<MyPrototype> myPrototype;

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

}

Другие советы

Также возможно с org.springframework.beans.factory.ObjectFactory Если вы хотите не отставать от Spring API

public class MySingleton {

  @Autowired
  private ObjectFactory<MyPrototype> myPrototypeFactory;

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

Вы можете прочитать больше в документация.

Это реализовано только с пружиной> = 4.1 см. билет.

Наконец введен как @Уважать Аннотация. Вот обсуждение О том, как его использовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top