-
빈 스코프기술/Java - 강의 정리 2022. 8. 5. 13:19
빈 스코프
스프링은 다양한 스코프를 지원한다.
- 싱글톤 - 기본 스코프, 단 하나만 존재한다.
- 프로토타입 - 빈을 요청할때마다 매번 생성한다. 주의해야할 점은 생성할 때만 관여하지만 소멸은 관리되지 않는다.
- 요청 - HTTP 요청
- 세션 - HTTP 세션
- 어플리케이션 - 서블릿 컨텍스트
싱글톤 빈과 프로토타입 빈을 함께 사용 시
싱글톤 빈 안에 프로토타입 빈을 주입받을 시 주입받을 때만 새로 생성되고, 이후부터는 새로 생성되지 않는다.
해결책
ObjectProvider
스프링에서 지정된 빈을 컨테이너에서 찾아주는 DL 서비스를 제공해주는 것이 ObjectProvider 이다.
편의 기능을 많이 제공해준다.
private ObjectProvider<Type> objectProvider; public void logic() { Type type = objectProvider.getObject(); type.logic(); }
Provider
자바 표준으로 제공해주는 DL 서비스이다.
아주 간단하게 get 메서드만 제공해준다.
private Provider<Type> provider; public void logic() { Type type = provider.get(); type.logic(); }
의존관계 주입 - 웹 스코프
웹 스코프를 참조하는 게 있다면 의존 관계 주입 시 해당 의존관계가 존재하지 않아 웹 서비스를 기동할 수 없다.
이를 해결하기 위해 Scope 에 proxyMode 를 제공하면 클래스를 상속하는 프록시 객체를 생성한 후 주입해준다. 호출할 때 실제 클래스의 메서드를 호출해준다.
'기술 > Java - 강의 정리' 카테고리의 다른 글
빈 생명주기 콜백 (0) 2022.08.05 의존 관계 주입 방법 (0) 2022.08.05 빈 생성 방법 (0) 2022.08.05