Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

HanJun.Dev

Spring Bean 이란? 본문

Back-end/Spring

Spring Bean 이란?

hanjun.e 2022. 7. 14. 22:55

빈(Bean)

Spring IoC 컨테이너가 관리하는 자바 객체를 빈이라고 부른다.
new 연산자로 객체 생성했을 때 그 객체는 빈이 아니다.
ApplicationContext.getBean()으로 얻어질 수 있는 객체가 빈이다.
Spring에서 빈은 ApplicationContext가 알고 있는 객체를 의미한다.

* AnnotationConfigApplicationContext는 AppConfig.class를 읽고 빈 설정 메타정보를 생성.


스프링에서 빈은 보통 싱글톤으로 존재한다.
*싱글톤 : 어떤 클래스가 최초 한번만 메모리에 할당하고 그 메모리에 객체를 만들어 사용하는 디자인 패턴(객체를 하나만 생성하는 패턴)


Spring IoC
*DI(Dependency Injection)
개발자가 객체를 new해서 생성하지 않고, IoC컨테이너에 존재하는 Bean 객체를 주입해준다.
해당 기능을 사용하면 싱글톤, 개발자의 편의, 성능 이슈 등등을 해결해준다.


*객체의 Scope
IoC 컨테이너에 객체의 제어권을 넘겨주면, IoC 컨테이너가 해당 객체의 Scopre를 관리해준다.


Spring IoC 컨테이너에 빈을 등록하는 방법

  1. Component Scanning
  2. 빈 설정파일에 직접 빈 등록

1. Component Scan
@ComponentScan 어노테이션과 @Component 어노테이션을 사용해서 빈을 등록하는 방법이다.
@ComponentScan은 어느 지점부터 컴포넌트를 찾으라고 알려주는 역할을 하고 @Component는 실제로
찾아서 빈으로 등록할 클래스를 의미한다.

2. 빈 설정파일에 직접 빈 등록
자바 클래스를 생성
@Configuration 애노테이션을 클래스에 붙인 후 @Bean 애노테이션을 사용해 직접 빈을 정의한다.

@Configuration
public class SampleConfiguration {
    @Bean
    public SampleController sampleController() {
        return new SampleController;
    }
}

 

@Configuration 도 @Component를 사용하기 때문에 @ComponentScan의 스캔 대상이 되고
따라서 빈 설정 파일이 읽힐 때 그 안의 빈들이 IoC컨테이너에 등록된다.

'Back-end > Spring' 카테고리의 다른 글

Spring 개발 시 필수 어노테이션  (0) 2022.07.14
스프링 입문 - 회원 관리 예제  (0) 2022.01.28