복붙노트

[SPRING] 주석을 사용하여 Spring Lookup Method Injection하는 방법?

SPRING

주석을 사용하여 Spring Lookup Method Injection하는 방법?

주석을 사용하여 조회 방법 삽입을 사용할 방법이 있습니까?

주어진 다음 클래스 :

@Service
public abstract class A {


    protected abstract createB();

}

작동 시키려면 spring applicationContext.xml에 다음을 선언해야합니다.

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

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

를 사용하고 있지만 XML에서도 선언해야합니다. 내가 생각하는 좋은 접근 방법이 아닙니다.

특수 효과를 사용하여이를 수행하는 방법은 무엇입니까?

해결법

  1. ==============================

    1.javax.inject.Provider를 사용할 수 있습니다. Phil Webb에게 감사드립니다.

    javax.inject.Provider를 사용할 수 있습니다. Phil Webb에게 감사드립니다.

    public class MySingleton {
    
      @Autowired
      private Provider<MyPrototype> myPrototype;
    
      public void operation() {
        MyPrototype instance = myPrototype.get();
        // do something with the instance
      }
    
    }
    
  2. ==============================

    2.Spring API를 따라 가고 싶다면 org.springframework.beans.factory.ObjectFactory로도 가능하다.

    Spring API를 따라 가고 싶다면 org.springframework.beans.factory.ObjectFactory로도 가능하다.

    public class MySingleton {
    
      @Autowired
      private ObjectFactory<MyPrototype> myPrototypeFactory;
    
      public void operation() {
        MyPrototype instance = myPrototypeFactory.getObject();
        // do something with the instance
      }
    }
    

    자세한 내용은 설명서를 참조하십시오.

  3. ==============================

    3.Spring> = 4.1에서만 구현됩니다. 티켓을보십시오.

    Spring> = 4.1에서만 구현됩니다. 티켓을보십시오.

  4. ==============================

    4.마지막으로 @Lookup 주석으로 도입되었습니다. 사용 방법에 대한 설명입니다.

    마지막으로 @Lookup 주석으로 도입되었습니다. 사용 방법에 대한 설명입니다.

  5. from https://stackoverflow.com/questions/3891997/how-to-do-spring-lookup-method-injection-with-annotations by cc-by-sa and MIT license