Spring Framework
@Configuration
sanghyeon
2023. 9. 8. 20:06
싱글톤 컨테이너 사용을 위한 어노테이션
싱글톤 컨테이너 란?
싱글턴 패턴을 적용하지 않아도 객체 인스턴스를 *싱글톤으로 관리 해줌
*클래스의 인스턴스가 한개만 생성되도록 보장하여 객체 인스턴스를 2개 이상 생성되지 못하도록 막아 주는것
스프링 컨테이너는 싱글톤 컨테이너 역활을 하게 되고 기존 싱글턴 패턴의 모든 단점을 해결 하면서 싱글톤으로 유지 해주는 것
- 싱글톤 패턴을 위한 코드들을 생략 가능
- DIP, OCP, 테스트, private 생성자로 부터 자유롭게 싱글톤 사용 가능
주의점
객체 인스턴스를 공유하기 때문에 상태를 유지(stateful)하게 설계하면 안되어 무상태(stateless)로 설계 해야함
특정 클라이언트에 의존적인 필드가 있으면 안되고 특정 클라이언트가 값을 변경 할 수 있는 필드가 있으면 안됨
가급적 읽기만 가능하도록 하는것이 좋다.
공유 값이 설정되어 있는 경우 큰 장애가 발생할 수 있으니 조심해야함
참고 김영한 스프링 기초 핵심 - 싱글톤 컨테이너