스프링 컨테이너
ApplicationContext 를 스프링 컨테이너라 한다. 기존에는 AppConfig 를 사용해서 직접 객체를 생성하고 DI를 했지만 이제부터는 스프링 컨테이너를 통해서 사용이 가능하다.
스프링 컨테이너는 @Configuration 이 붙은 AppConfig 를 설정(구성) 정보로 사용한다. 여기서 @Bean 이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 등록된 객체를 스프링 빈이라 한다.
기존에는 필요한 객체를 AppConfig 를 사용해서 직접 조회했다. 지금은 스프링 컨테이너를 사용하여 필요한 스프링 빈(객체)를 찾을 수 있다. 예) applicationContext.getBean() 메서드를 사용하여 찾을 수 있다.
// 스프링 컨테이너 생성
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
- ApplicationContext 는 스프링 컨테이너이다.
- ApplicationContext 는 인터페이스이다.
- 더 정확히는 스프링 컨테이너를 부를 때 BeanFactory , ApplicationContext 로 구분해서 이야기하지만 전자의 경우 직접 사용하는 경우가 거의 없다.
- 빈 이름은 메서드 이름을 사용한다.
- 빈 이름을 직접 부여할 수 도 있다. ex) @Bean(name="memberService2")
- 빈 이름이 중복되면 오류발생 or 기존 빈을 덮어버림
- 스프링 컨테이너는 설정 정보를 참고해서 의존관계를 주입(DI) 한다.
- 단순히 자바 코드를 호출하는 것 같지만, 차이가 있다. 뒤에 싱글톤 컨테이너에서 설명
'Develop > Spring' 카테고리의 다른 글
[Spring/기본편] 의존관계 자동 주입 (0) | 2024.03.19 |
---|---|
[Spring/기본편] 컴포넌트 스캔 (0) | 2024.03.19 |
[Spring/기본편] 싱글톤 컨테이너 (0) | 2024.03.19 |
[Spring/기본편] 스프링 빈 조회 (0) | 2024.03.19 |
[Spring/기본편] 객체 지향 설계 (0) | 2024.03.18 |
댓글