[Spring] 빈 스코프(BeanScope)
·
BackEnd/Spring
빈 스코프란?스코프=범위빈 스코프란 빈이 관리되는 범위를 의미합니다. (스코프=범위)스프링 빈은 기본적으로 싱글톤으로 생성하여 관리됩니다. 싱글톤으로 생성된다는 것은 스프링 컨테이너의 시작과 함께 생성되고 종료될때까지 유지된다는 의미입니다. 스프링이 지원하는 스코프 전략은 여러가지가 있는데요. 스프링에서의 기본 설정이 싱글톤으로 되어있기 때문입니다. 기본값인 싱글톤 방식의 특징과 그 이외에 어떤 스코프 전략의 특징들을 간단히 살펴보겠습니다. 스프링이 지원하는 스코프 종류Singleton Scope 스프링에서의 기본 스코프 전략으로, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프입니다. 앱 구동 시에 ApplicationContext에 싱글톤으로 생성됩니다.Prototype Scop..
컴포넌트 스캔(@ComponentScan)에 대해 알아보자
·
BackEnd/Spring
스프링에서 빈을 등록하는 방법으로 아래 두 가지 방법이 있었습니다.@Configuration 클래스 내의 메소드에 @Bean 을 명시해 주는 방법XML 을 이용해 명시하는 방법그러나 스프링 에서는 위 두가지 정보가 없어도 스프링 빈을 등록하는 방법이 있습니다. 컴포넌트 스캔이란?컴포넌트 스캔은 이름 그대로 @Component 어노테이션이 붙은 클래스를 찾아 스프링 빈으로 등록해 주는 것입니다. 이 컴포넌트 스캔 기능을 사용하기 위해서는 @ComponentScan 어노테이션을 설정 정보 클래스에 붙여주면 됩니다. 간단한 테스트를 해보겠습니다. 1. 두개의 컴포넌트 클래스를 작성FruitRepository.class @Component public class FruitRepository { publ..
싱글톤 컨테이너(Singleton Container)란 무엇인가
·
BackEnd/Spring
“스프링에서 빈은 싱글톤으로 관리됩니다.”이 말을 항상 들어왔지만 무슨말인지 설명을 못했습니다. 이번 글에서는 이게 무슨말인지 알아가 보겠습니다. 일단 빈과 싱글톤 두가지 단어에 집중해서 알아보겠습니다.빈(Bean) 이란?빈은 스프링 컨테이너의 의해서 관리되는 객체를 의미합니다. 스프링 컨테이너는 객체간의 의존관계를 설정하기 위해 빈을 관리 합니다. 그럼 싱글톤(Singleton)이란 무엇일까요?싱글톤은 디자인 패턴 중 하나입니다. 개발을 하다보면 초당 수백, 수천건 이상의 요청을 받게 됩니다. 한 건의 요청 당 10개의 객체가 사용된다고 하면 수백, 수천건의 요청이 들어오면 수도 없이 많은 객체가 생성이 되게 됩니다. 이 많은 객체들이 메모리에 적재되고 참조되지 않을 때까지 기다렸다가 GC에 걸려 제거..
[스프링] SpringContainer, BeanFactory, ApplicationContext
·
BackEnd/Spring
스프링 컨테이너(SpringContainer)IoC컨테이너라고도 불리며 BeanFactory와 ApplicationContext를 통틀어 하는 말입니다. 스프링은 스프링 컨테이너에 의해서 객체를 관리합니다. 이 객체를 저희는 Bean 이라고 합니다. 스프링 컨테이너는 이 Bean 객체를 IoC(제어의 역전)방식으로 관리하고 이 Bean 의 구성정보를 바탕으로 의존관계를 주입해주며, 애플리케이션 구성 및 생애관리를 해줍니다.  빈 팩토리(BeanFactory)BeanFactory는 스프링 빈을 생성, 의존관계 설정, 사용 등 관리해주는 스프링 컨테이너의 최상위 인터페이스입니다. 이를 구현한 클래스에서는 getBean() 메서드를 통해 오브젝트를 요청할 수 있습니다.스프링 빈의 이름은 자동으로 클래스명의 가..