ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 빈 스코프
    기술/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

    댓글 0

Designed by Tistory.