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;
}
출처:
반응형