더북(TheBook)

3.5.6 빈 생성 방식 이해하기

기본적으로 스프링의 모든 빈은 싱글턴입니다. 즉, 스프링은 빈의 단일 인스턴스를 유지하고 관리하며, 모든 의존 객체는 동일한 인스턴스를 사용하고 ApplicationContext.getBean()에 대한 모든 호출은 동일한 인스턴스를 반환합니다. 이전 절에서 빈이 동일한지 equals() 비교가 아닌 ID 값의 비교(==)를 사용하여 살펴보았습니다.

싱글턴이라는 용어는 자바에서 두 가지 명확한 개념, 즉 애플리케이션 내에 단일 인스턴스를 갖는 객체와 싱글턴 디자인 패턴을 나타내려는 목적으로 상호 교환적으로 사용됩니다. 우리는 첫 번째 개념을 싱글턴이라고 부르며 두 번째는 싱글턴 패턴이라고 합니다. 싱글턴 디자인 패턴은 에릭 감마(Erich Gamma)가 집필한 <Design Patterns : Elements of Reusable Object-Oriented Software>(Addison-Wesley, 1994)에 의해 대중화됐습니다. 하지만 문제는 사람들이 싱글턴 인스턴스의 필요성과 싱글턴 패턴 적용의 필요성을 혼동할 때 발생합니다. 다음은 자바에서 싱글턴 패턴의 일반적인 구현 예제입니다.

예제 3-103 Singleton 클래스([[bean-instantiation-mode]] Singleton.java)

package com.apress.prospring5.ch3;

public class Singleton {

    private static Singleton instance;

    static {
        instance = new Singleton();
    }

    public static Singleton getInstance() {
        return instance;
    }

}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.