[Spring] 싱글톤 컨테이너


인프런에 게시 되어있는 “스프링 핵심 원리-기본편” 수업을 기본으로 작성된 게시물

  • 싱글톤 패턴
    • 객체를 호출하여 생성할 때 중복적으로 생성되지 않도록 방지함
    • 문제점
      • 패턴을 구현하는 코드 자체가 많이 들어감
      • private 생성자로 자식 클래스를 만들기 어려움
      • etc…
  • 싱글톤 컨테이너
    • 스프링 컨테이너는 싱글턴 패턴 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리해줌!!
    • 스프링 컨테이너 => 싱글톤 컨테이너 역할하는데, 이렇게 생성 및 관리하는 기능을 싱글톤 레지스터리라 함 –> 결론적으로, 이러한 고마운 기능 덕분에 싱글톤 패턴의 모든 단점을 해결 + 객체를 싱글톤으로 유지

    • 싱글톤 컨테이너 적용 전 스크린샷 2021-08-08 오후 12 08 12

    • 싱글톤 컨테이너 적용 후 스크린샷 2021-08-08 오후 12 08 23
  • 싱글톤 방식의 주의점
    • 객체 인스턴스 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에, 싱글톤 객체가 상태를 유지(stateful)하게 설계하면 안됨
    • 즉, 무상태(stateless)로 설계해야함