본문 바로가기
스프링 Spring/스프링 핵심 원리 - 기본편

[싱글톤 컨테이너] 싱글톤 패턴

by 코딩개발 2022. 2. 5.
728x90
반응형

싱글톤 패턴

 

싱글톤 패턴 : 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴

private 생성자를 사용하여 외부에서 임의로 new 키워드를 사용하지 못하도록 막는다.

public class SingletonService {

    private static final SingletonService instance = new SingletonService();

    // 객체 인스턴스가 필요하면 이 메서드를 통해서만 조회 가능
    // 호출시 항상 같은 인스턴스 반환
    public static SingletonService getInstance() {
        return instance;
    }

    private SingletonService() { // 외부에서 new 생성 불가
    }

    public void logic() {
        System.out.println("싱글톤 객체 로직 호출");
    }

}

 

public class SingletonTest {
    @Test
    @DisplayName("싱글톤 패턴을 적용한 객체 사용")
    void singletonServiceTest() {
        SingletonService singletonService1 = SingletonService.getInstance();
        SingletonService singletonService2 = SingletonService.getInstance();

        // 같은 인스터스
        System.out.println("singletonService1 = " + singletonService1);
        System.out.println("singletonService2 = " + singletonService2);

        Assertions.assertThat(singletonService1).isSameAs(singletonService2);
    }
}

 

결과

 

고객의 요청이 올 때마다 이미 만들어진 객체를 공유해서 효율적응로 사용할 수 있다.

 


<출처>

인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다.

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 
728x90
반응형

댓글