-
Spring: Spring Container와 Bean각종 학습 요약/Spring 2022. 6. 16. 11:56
Spring Container와 Bean
스프링 컨테이너와 빈에 대한 간략한 설명글입니다.
Spring Container란?
스프링 웹 어플리케이션 내부에서 활용되는 객체들을 관리하고 있는 관리자이자 저장소입니다. 객체를 생성하고, 저장하고, 소멸합니다.
스프링 컨테이너가 객체를 생성/사용하는 기본적인 값은 싱글톤입니다. 컨테이너에서 별다른 설정 없이 객체를 얻었다면(getBean()), 싱글톤 객체가 반환됩니다.
싱글톤 객체들은 컨테이너가 생성되고 나서 바로 객체를 생성하고, 보관하다가 어플리케이션 종료 시점에 소멸됩니다.
스프링컨테이너, DI컨테이너, IoC컨테이너, 아니면 그냥 편하게 컨테이너라고 불립니다.Bean이란?
Container에서 관리/사용되는 모든 객체를 Bean이라고 합니다.
빈의 종류는 다양하지만, 위에서 말했듯 대개 싱글톤 빈이 사용됩니다. 이외에도 객체를 사용할 때마다 생성하는 프로토타입(이때 컨테이너는 의존관계 주입까지만 관여합니다), 웹 요청이나 세션과 관련된 request와 session, 서블릿 컨텍스트와 동일한 생명주기를 갖는 application 등이 있습니다.
생각해보면 알 수 있듯이, 컨테이너가 빈의 생명주기를 얼마나 관리하는지, 어떤 시점에 관리하는 지에 따라 용도가 달라집니다. 이러한 빈의 생명주기를 빈 스코프라고 말합니다.주의할 점
늘 그렇듯 공유되는 자원은 상태 문제가 중요합니다. 공유되어서는 안되는 값은 stateless하도록 고려해야 합니다. 예를 들어 아이디나 고객명 같은 정보를 필드로 관리한다면, 그것은 잘못된 설계입니다.
'각종 학습 요약 > Spring' 카테고리의 다른 글
Spring: Proxy를 통한 Spring Data Repository 초기화와 설정 (2) 2022.07.01 Spring: AOP의 기본적인 개념 & SpringAOP 훑어보기 (2) 2022.06.20 Error Handling: Spring에서 Exception 대응하기 (0) 2022.06.17 Spring: 의존관계 주입(DI, Dependency Injection) 방식 네 가지 요약 (0) 2022.06.16 Spring: IoC와 DI를 예시로 쉽게 이해해보자 (0) 2022.06.16 Framework와 Library의 차이 (0) 2022.06.14