IoC 컨테이너와 빈(5) : 빈의 스코프

맹기·2021년 3월 23일
0

1.스코프

  • 싱글톤
    • 모든 빈들의 디폴트 설정은 싱글톤이다.
    • 싱글톤 이외의 스코프를 쓰게 될 일은 거의 없다.
  • 프로토타입
    • 어떤 특정한 경우에 사용해야하는 스코프
    • 매번 호출 할 때마다 다른 인스턴스가 찍힌다.
    • Request
    • Session
    • WebSocket
    • ....
  • 프로토타입 빈이 싱글톤 빈을 참조하면?
    • 아무 문제 없음
    • 어차피 계속 같은 빈을 참조함
  • 싱글톤 빈이 프로토타입 빈을 참조하면?
    • 프로토타입 빈이 호출될때마다 업데이트가 되지 않는다.
    • 업데이트 하려면
      • scoped-proxy
        @Component @Scope(value="prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)
        public class Proto{
        }
      • Object-Provider
        @Component 
        public class Single{
        	
            @Autowired
            private ObjectProvider<Proto> proto;
            
            public Proto getProto() {
            	return proto.getIfAvailable();
            }
        }
      • Provider (표준)
    • 싱글톤 객체 사용시 주의할 점.
      • 프로퍼티가 공유 -> Thread-Safety한 코딩을 해야함
      • ApplicationContext 초기 구동시 인스턴스 생성. -> 애플리케이션 구동 시 시간이 조금 더 걸릴수 있음.

0개의 댓글

관련 채용 정보