Tech/Spring | Spring Boot

[Spring] 빈 (Bean)

싱브이 2023. 9. 22. 14:59
728x90
반응형

 

인프런 - 백기선님의 예제로 배우는 스프링 입문(개정판)을 수강하며 정리한 글입니다.

 

 

 

빈(Bean) : 일반적인 객체에서 IoC 컨테이너가 관리하는 객체 (applicationContext 안에 담고 있는 객체)

          -> new 를 통해 생성하는 객체는 해당하지 않는다 !

 

빈 설정 방법 : 이름 또는 ID, 타입, 스코프

 

빈 등록 방법 

1. Component Scanning
  : 어노테이션을 통한 등록

  @ComponentScan 어노테이션과 @Component 어노테이션을 사용해서 빈을 등록하는 방법이다.

 

Spring IoC 컨테이너가 IoC 컨테이너를 만들고 그 안에 빈을 등록할 때 사용하는 인터페이스들을 라이프 사이클 콜백이라고 부른다.

라이프 사이클 콜백 중에는 @Component 어노테이션을 찾아 모든 클래스의 인스턴스를 생성해 빈으로 등록하는 작업을 수행하는 어노테이션 프로세서가 등록되어 있다.

 @Component 어노테이션 : @Repository, @Service, @Controller, @Configuration, etc.

 

-> 빈으로 등록하지 않더라고 스프링이 알아서 ioc 컨테이너가 만들어질 때 빈으로 등록해준다. 

 

2. 직접 등록
  : XML이나 자바 설정 파일에 등록

자바 설정파일은 자바 클래스를 생성해서 작성할 수 있고 일반적으로 ~Configuration로 한다.

그리고 클래스에 @Configuration 어노테이션을 붙인다.

그 안에 @Bean 어노테이션을 사용해 직접 빈을 정의한다.

@Configuration
public class SampleConfiguration {
    @Bean
    public SampleController sampleController() {
        return new SampleController;
    }
}
sampleController()에서 리턴되는 객체가 IoC 컨테이너 안에 빈으로 등록된다.

-> 빈을 직접 정의해서 등록하면 @Component 애노테이션을 붙이지 않아도 된다.

 

 

728x90
반응형