ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] 빈(Bean)의 범위
    WEB/Spring 2020. 4. 3. 18:08

    우리가 자바코드를 이용해서 객체를 생성할 때 예를들어 다음과 같은 작업을 진행합니다.

     

    ClassName cn1 = new ClassName();  

    ClassName cn2 = new ClassName(); 

    ClassName cn3 = new ClassName(); 

     

    이런식으로 객체를 생성할 때마다 메모리에선 새로운 객체가 생성이 됩니다. 메모리엔 각각 다른 3개의 ClassName 객체가 생성되는 것입니다.

     

    그러나 스프링에서는 .xml파일에서 스프링 컨테이너를 만들면서 객체를 다 생성해놨습니다. 이렇게 생성된 객체를 getBean() 이라는 함수를 이용하여 호출만 하는 것이기 때문에 동일한 객체에 접근하게 됩니다.

     

    싱글톤(Singleton)

    위의 예시처럼 스프링 컨테이너에서 생성된 빈(Bean) 객체의 경우 동일한 타입에서는 기본적으로 한 개만 생성이 되며, getBean() 함수로 호출될 때 동일한 객체가 반환되는데 이를 싱글톤(Singleton)이라고 합니다.

     

    싱글톤 범위와 반대의 개념도 있는데 이를 프토토타입(prototype) 범위라고 합니다. 싱글톤은 Default 설정인 반면에 프로토타입의 경우 개발자는 별도로 설정을 해줘야 합니다. 스프링 설정 파일에서 빈(Bean) 객체를 정의할 때 다음과 같이 scope 속성을 명시해 주면 됩니다.

     

    프로토타입(prototype)

     

     

    출처 : 인프런, 자바 스프링 프레임워크 - 신입 프로그래머를 위한 강좌

    'WEB > Spring' 카테고리의 다른 글

    [Spring] 생명주기(Life Cycle)  (0) 2020.04.05
    [Spring] 의존 객체 선택  (0) 2020.04.04
    [Spring] 의존 객체 자동주입  (0) 2020.04.04
    [Spring] DI(Dependency injection) 란?  (0) 2020.04.02
    [Spring] 스프링 프레임워크란?  (0) 2020.04.02

    댓글

Designed by Tistory.