1. IoC(제어의 역전)
- 프로그램흐름의 제어를 구현객체가 아닌 외부에서 담당한다.
- AppConfig에서 @Configuration 애너테이션 밑에 @Bean 애너테이션을 달면 스프링Bean으로 등록이 가능하다.
- 아래처럼 ApplicationContext를 이용하면 스프링컨테이너에 빈으로 등록이 가능하다
- ApplicationContext 는 스프링컨테이너다. (인터페이스다)
- 스프링컨테이너는 @Configuration이 붙은 애를 설정(구성) 정보로 사용한다. @Bean이라 적인 메서드를 모두 호출해서 반환된 객체를 스프링컨테이너에 스프링빈으로 등록한다.
- @Bean 이름이 붙은 메서드의 이름을 사용한다(변경 가능하긴함)
- applicationContext.getBean()으로 스프링빈을 찾을 수 있다.
2. 스프링컨테이너와 스프링 빈
- 스프링컨테이너는 XML 기반이나 애너테이션 기반의 자바설정 클래스로 만들 수 있다.
- 스프링컨테이너는 스프링빈을 생성한다. (Key:Value)
- 스프링컨테이너는 설정 정보를 참고해서 의존관계를 주입한다. (DI)
- 스프링컨테이너에 실제 스프링빈이 잘 등록되었는지 Test코드를 만들어보장
- ROLE 분기를 통해 내가 등록한 애들만 출력도 가능하다.
- ac.getBean(빈이름 타입); : 빈 조회
- ac.getBean(타입); : 빈 조회
3. 스프링 빈 조회 - 상속관계
- 부모타입으로 조회하면 자식타입도 함께 조회된다.
- 'Object' 타입으로 조회하면 모든 스프링 빈을 조회한다.
- BeanFactory : 스프링컨테이너의 최상위 인터페이스
- ApplicationContext : BeanFactory를 상속받은 스프링컨테이너이며, 환경설정, 이벤트, 패턴 등 수 많은 부가기능을 제공해준다.
ex) 메시지소스를 활용한 국제화 기능, 환경변수(로컬환경/개발환경/운영환경), 애플리케이션 이벤트, 리소스 조회 등
'Backend - Java Spring > Spring Core 핵심원리(완)' 카테고리의 다른 글
[SpringCore 핵심원리] @Configuration (0) | 2024.02.17 |
---|---|
[SpringCore 핵심원리] 빈 설정과 싱글톤 (0) | 2024.02.17 |
[SpringCore 핵심원리] Config (0) | 2024.02.16 |
[SpringCore 핵심원리] 설계 (0) | 2024.02.16 |
[SpringCore 핵심원리] 시작 (0) | 2024.02.14 |
댓글