스프링 컨테이너
- ApplicationContext를 스프링 컨테이너라고 한다
- 스프링 컨테이너는 @Configuration이 붙은 Config를 설정 정보로 사용한다
- 여기서 @Bean이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다
- 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다
- 스프링 컨테이너 생성
//스프링 컨테이너 생성
ApplicationContext applicationContext =
new
AnnotationConfigApplicationContext(AppConfig.class);
- ApplicationContext를 스프링 컨테이너라고 하고 인터페이스이다
- 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다
- 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야 한다
- 구성정 보안에 @Bean이라고 적힌 생성자들의 빈 이름, 빈 객체가 들어간다
- 모든 빈 출력하기
- 실해하면 스프링에 등록된 모든 빈 정보를 출력할 수 있다
- ac.getBeanDefinitionNames() → 스프링에 등록된 모든 빈 이름을 조회한다
- ac.getBean() → 빈 이름으로 빈 객체(인스턴스)를 조회한다
- 애플리케이션 빈 출력
- 스프링이 내부에서 사용하는 빈은 제외하고, 내가 등록한 빈만 출력
- (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) → 일반적으로 사용자가 정의한 빈 출력
- (beanDefinition.getRole() == BeanDefinition.ROLE_INFRASTRUCTURE) → 스프링이 내부에서 사용하는 빈 출력
- BeanDefinition ( 스프링 빈 설정 메타 정보)
- 위에서 등장한 BeanDefinition이 무엇인지 알아보자
- 스프링은 자바 코드, XMLM, Groovy 등 다양하게 설정 형식을 지원한다 이것을 가능하게 하는 것이 BeanDefinition이다
- 쉽게 말해서 역할과 구현을 개념적으로 나눈 것인데
- 어떤 형식으로 든 지 읽어서 BeanDefinition에 넣으면 스프링 컨테이너는 어떠한 코드로 만들어졌는지 몰라도 스프링 빈을 생성할 수 있게 된다.
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java] Mapping 요청 예시 (0) | 2022.01.30 |
---|---|
[Java] 스프링 MVC 구조 / 기본 기능 (0) | 2022.01.27 |
[Java] 빈 스코프 (0) | 2022.01.21 |
[Java] 스프링 의존관계 주입 (0) | 2022.01.21 |
[Java] 롬북 lombok (0) | 2022.01.21 |
댓글