Spring Framework

@Configuration

sanghyeon 2023. 9. 8. 20:06

싱글톤 컨테이너 사용을 위한 어노테이션 

 

싱글톤 컨테이너 란?

 

싱글턴 패턴을 적용하지 않아도 객체 인스턴스를 *싱글톤으로 관리 해줌

*클래스의 인스턴스가 한개만 생성되도록 보장하여 객체 인스턴스를 2개 이상 생성되지 못하도록 막아 주는것 

 

스프링 컨테이너는 싱글톤 컨테이너 역활을 하게 되고 기존 싱글턴 패턴의 모든 단점을 해결 하면서 싱글톤으로 유지 해주는 것 

  • 싱글톤 패턴을 위한 코드들을 생략 가능 
  • DIP, OCP, 테스트, private 생성자로 부터 자유롭게 싱글톤 사용 가능 

 

주의점

객체 인스턴스를 공유하기 때문에 상태를 유지(stateful)하게 설계하면 안되어 무상태(stateless)로 설계 해야함

특정 클라이언트에 의존적인 필드가 있으면 안되고 특정 클라이언트가 값을 변경 할 수 있는 필드가 있으면 안됨

가급적 읽기만 가능하도록 하는것이 좋다.

공유 값이 설정되어 있는 경우 큰 장애가 발생할 수 있으니 조심해야함 

 

참고 김영한 스프링 기초 핵심 - 싱글톤 컨테이너