스프링 컨테이너에 여러 종류의 빈이 등록이 되고 조금씩 성격이 다르고, 구성 정보를 작성하는 방법도 다를 수 있기 때문에 접근 방법을 잘 이해한다면 Spring Boot가 어떤 종류의 빈에 어떤 스타일의 구성 정보를 사용하는지 파악하기 좋음
빈 오브젝트 살펴보기
HelloServer의 기능을 제공하기위해 등록한 빈
HelloController, HelloDecorator, SimpleHelloService
Spring Boot가 Containerless를 지원하기 위해서 내장형 서블릿 컨테이너를 이용하는 독립 실행형 애플리케이션 방식으로 동작 하면서 요구되어진 빈
TomcatServletWebServerFactory, DispatcherServlet
스프링 컨테이너에 올라가는 빈들을 구분하는 방법
애플리케이션 빈
- 개발자가 어떤 빈을 사용하겠다고 명시적으로 구성 정보를 제공한 것
컨테이너 인프라스트럭쳐 빈 ← 개발자의 관심사가 아님
- 스프링 컨테이너 자신이거나 기능을 확장하며 추가해온 것들을 빈으로 등록시켜서 사용하는 것
- 등록 요청을 하지 않아도 컨테이너가 스스토 빈으로 등록해서 동작하는 방식으로 이용됨
- 컨테이너는 자기 자신도 빈으로 접근할 수 있도록 등록함
- 빈 오브젝트를 생성하고 초기화하고 관계를 맺고 라이프 사이클을 관리하는 중요한 역할을 함
- AOP가 적용되게 하기 위해 컨테이너에서 해야되는 작업들을 위한 빈들도 스프링 컨테이너가 등록해서 사용
- 기능
- Enviroment : 외부 설정과 같은 환경 정보에 접근할 때 사용
- BeanPostProcessor, BeanFactoryPostProcessor : 기능을 추가할 수 있는 방법들