티스토리 뷰

SPRING

[SPRING] Dependency Lookup (DL)

혀내 2022. 7. 23. 22:32
반응형

Dependency Lookup(DL)

의존관계를 외부에서 주입받는 걸 Dependency Injection(DI)이라 불렀다면, 직접 필요한 의존관계를 찾는 것은 Dependency Lookup(DL)이라고 부른다. ObjectFactory와 ObjectProvider가 스프링에서 DL 기능을 제공한다.

 

 

 

ObjectFactory, ObjectProvider

  • ObjectProvider: 지정한 빈을 컨테이너에서 대신 찾아주는 DL 서비스를 제공한다.
  • ObjectFactory: ObjectProvider의 구 버전 클래스이다.
  • 스프링 컨테이너에서만 사용 가능하다는 단점이 있다.
@Autowired
private ObjectProvider<PrototypeBean> prototypeBeanProvider;

public int logic() {
    PrototypeBean prototypeBean = prototypeBeanProvider.getObject();
    prototypeBean.addCount();
    
    int count = prototypeBean.getCount();
    return count;
}

 

 

JSR-330 Provider

  • 'javax.inject:javax.inject:1' 라이브러리를 Gradle에 먼저 추가한다.
  • 자바 표준 라이브러리이기 때문에 스프링이 아닌 다른 컨테이너에서도 사용 가능하다.
@Autowired
private Provider<PrototypeBean> provider;

public int logic() {
    PrototypeBean prototypeBean = provider.get();
    prototypeBean.addCount();
    
    int count = prototypeBean.getCount();
    return count;
}

 

 

 

출처:

 

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

반응형