Spring IoC Container 5부

Spring IoC 컨테이너와 빈 - 5부

백기선님의 강의인 Spring 프레임워크 핵심 기술 편의 IoC Container를 학습한 내용을 정리한 글

Bean Scope

Bean은 일반적으로 Singleton Scope의 Bean만 사용해왔다.

그러나 때때로 특정한 Scope에 따라 객체를 만들어야할 수 있다.

프로토타입 Scope이 있는데, 매번 새로운 인스턴스를 만들어서 쓰는 Scope이다.

만약 프로토타입 빈이 싱글톤 빈을 참조하면?

  • 문제 없음

만약 싱글톤 빈이 프로토타입 빈을 참조하면?

  • 프로토타입 빈이 업데이트가 안되네?
  • 업데이트 하려면
    • scoped-proxy
    • Object-Provider (비추천 왜냐하면 기존 코드를 건드려야함. Object-Provider로 감싸야한다.)
    • Provider (표준)

proxy 모드를 사용하면 클래스 기반의 CGlib를 사용한 Dynamic Proxy를 통해 매번 새로운 프로토타입 인스턴스를 사용할 수 있게 된다.

싱글톤 객체 사용시 주의할 점

  • 프로퍼티가 공유, Thread-safe한 처리를 해줘야함
  • Application Context 초기 구동시 인스턴스 생성

Reference

인프런 백기선님의 스프링 프레임워크 핵심 기술 강좌



© 2022. by minkuk

Powered by minkuk