스프링 핵심 원리 · 5/18
BeanFactory와 ApplicationContext
스프링 컨테이너의 최상위 인터페이스인 BeanFactory와, 이를 상속해 국제화·환경변수·이벤트·리소스 조회 같은 부가 기능을 제공하는 ApplicationContext의 역할을 정리합니다.
스프링 컨테이너의 최상위 인터페이스인 BeanFactory와, 이를 상속해 국제화·환경변수·이벤트·리소스 조회 같은 부가 기능을 제공하는 ApplicationContext의 역할을 정리합니다.
자바 코드 대신 XML로 스프링 빈을 설정하는 방법과, 자바 코드·XML 같은 다양한 설정 형식을 가능하게 하는 BeanDefinition 추상화와 BeanDefinitionReader의 역할을 정리합니다.
요청마다 new로 객체를 생성하던 AppConfig의 문제를 직접 구현한 싱글톤 패턴과 스프링 컨테이너로 각각 해결해 보고, 싱글톤 패턴의 문제점을 정리합니다.
AppConfig에서 memberRepository()가 여러 번 호출되는 것처럼 보여도 싱글톤이 보장되는 이유를 @Configuration과 CGLIB 바이트코드 조작으로 확인하고, @Bean만 사용할 때와 비교합니다.