관리 메뉴

제뉴어리의 모든것

@Component, @Configuration @Bean에 대하여 본문

Spring Boot

@Component, @Configuration @Bean에 대하여

제뉴어리맨 2021. 1. 31. 12:10

- Bean이란 

Spring Bean Container에 의해서 관리 되는 자바객체 (Default는 싱글톤)

 

- Bean의 사용 이유

Bean으로 등록 된 객체는 어떠한 클래스에서든 Container에 의해서 자동으로 주입 받을 수 있으므로 공유하며 손쉽게 사용 할 수 있다.


- Bean 등록 방법

1. xml 등록 방법

2. Component Scanning (지향하는 방식)

3. 자바 설정파일에 등록 (지향하는 방식)

 

이중 2,3번이주로쓰임.

 

- Component Scanning

Component Scanning은 Bean으로 등록하고 싶은, 개발자가 생성한 클래스에 붙이는 어노테이션.

ex :) 개발자가 Person이라는 클래스를 만들고 Bean 등록 하고싶다면

@Component
public class Person{
    private String name;

    public String getName() {
        return name;
    }
}

Person Bean객체 생성.

 

 

- 자바 설정파일 등록

  • 1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 @Configuration을 명시해 주어야 함

  • 개발자가 직접 제어가 불가능한 외부 라이브러리 또는 설정을 위한 클래스를 Bean으로 등록할 때 @Bean 어노테이션을 활용 (ex:) String 클래스는 이미 정의 되어있고 개발자가 제어 할 수 없음.., 외부 라이브러리에서 받아오는 class 또한 재정의 불가함..
@Configuration
public class Person{
    private String name;
    
    @Bean
    public String beBean() {

        String name = "";

        return name;
    }
}

beBean Bean객체 생성.

 

 

 

 

참고 : Spring annotation @Component, @Configuration (taes-k.github.io)

 

Spring annotation @Component, @Configuration

개요 Spring 프로젝트를 진행하면서 Bean으로 등록하기위해 @Component, @Configuration, @Controller … 등의 여러 어노테이션을 사용합니다. 그중에서도 @Component와 @Configuration은 사용상에 있어 차이가 있는

taes-k.github.io

[SpringBoot] @Bean, @Configuration, @Component 어노테이션 - MangKyu's Diary (tistory.com)

 

[SpringBoot] @Bean, @Configuration, @Component 어노테이션

기존의 Spring MVC에서는 xml을 활용하여 Bean을 등록하고 있었다. 하지만 프로젝트의 규모가 커짐에 따라 사용하는 요소들을 xml에 등록하는 것이 상당히 번거로워 져서 어노테이션(Annotation, @)를 활

mangkyu.tistory.com

백기선의 [스프링 입문] 스프링 빈 강좌