[Spring] Bean
- 📚 Spring/Spring 개념
- 2020. 8. 20. 18:17
| 빈(Bean)
-
Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean) 이라고 부른다.
-
new 연산자로 생성한 객체는 빈이 아니다.
-
ApplicationContext.getBean()으로 얻어질 수 있는 객체는 빈이다.
-
즉 Spring에서의 빈은 ApplicationContext가 알고 있는 객체, ApplicationContext가 만들어서 그 안에 담고있는 객체를 의미한다
| 빈(Bean)을 등록하는 방법?
-
Component Scanning*
-
직접 XML이나 자바 설정 파일에 등록 (But, XML로 사용할 경우 빈을 일일이 다 등록 해줘야 하는 불편함이 있다. 그래서 등장한 것이 Component Scan 이다.)
| Component Scan 을 통한 등록 방법
-
@ComponentScan 어노테이션과 @Componet 어노테이션을 사용해서 빈을 등록하는 방법이다.
-
@ComponentScan 어노테이션은 어느 지점 부터 컴포넌트를 찾으라고 알려주는 역할을 하고 @Component는 실제로 찾아서 빈으로 등록할 클래스를 의미한다.
-
Spring IoC 컨테이너가 IoC 컨테이너를 만들고 그 안에 빈을 등록할 때 사용하는 인터페이스들을 라이프 사이클 콜백 이라고 부른다.
-
라이프 사이클 콜백 중에는 @Component 애노테이션을 찾아서 이 애노네이션이 붙어있는 모든 클래스의 인스턴스를 생성해 빈으로 등록하는 작업을 수행하는 애노테이션 프로세서가 등록되어 있다.
| 설정파일에 직접 빈(Bean)을 등록하는 방법
- 자바 설정파일은 일반적으로 xxConfiguration과 같이 작성한다.
- 그리고 클래스에 @Configuration 애노테이션을 붙이고 그 안에 @Bean 애노테이션을 붙여 직접 Bean을 등록한다.
- @Configuration 애노테이션은 @Component를 사용하기 때문에 @ComponentScan의 대상이 되고 빈 설정 파일이 읽힐 때 그 안에 정의되어 진 Bean들이 IoC 컨테이너에 등록이 된다.
@Configuration
public class SampleConfiguration {
@Bean
public SampleController sampleController() {
return new SampleController;
}
}
'📚 Spring > Spring 개념' 카테고리의 다른 글
[Spring] 스프링 PSA (0) | 2020.08.23 |
---|---|
[Spring] 스프링 AOP 개념 및 적용 방법 (0) | 2020.08.21 |
[Spring] 의존성 주입(Dependency Injection) (0) | 2020.08.21 |
스프링 IoC Container와 Bean (0) | 2020.07.29 |
[Spring] 스프링 프레임워크(Spring Framework) 란? (0) | 2020.04.29 |