스프링 빈의 이벤트 라이프 사이클(Singleton Scope) 스프링 컨테이너 생성 ▶ 스프링 빈 생성 ▶ 의존관계 주입 ▶ 초기화 콜백 ▶ 사용 ▶ 소멸전 콜백 ▶ 스프링 종료 초기화 콜백: 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출 소멸전 콜백: 빈이 소멸되기 직전에 호출 스프링의 콜백 지원 방법 3가지 인터페이스(InitializingBean, DisposableBean) 인터페이스를 상속 받아서 생성과 소멸의 시기에 호출을 하는 방법. 이 인터페이스는 스프링 전용 인터페이스이기 때문에 스프링 전용 인터페이스에 의존한다. 초기화, 소멸 메서드의 이름을 변경할 수 없고 내가 코드를 고칠 수 없는 외부 라이브러리에 적용을 할 수 없다. → 예전에 사용하던 방식으로 거의 사용하지 않는다. 빈..
결론부터 말하면 편리한 자동 기능을 기본으로 사용하자. 스프링이 나오고 나서 점점 자동화 되는 기능을 선호하는 추세이고 설정 정보를 계층에 맞추어 일반적인 애플리케이션 로직을 자동으로 스캔할 수 있도록 지원한다. 번거로움을 줄일 수 있는 이런 과정을 선호하는 이유는 편리함도 있지만 관리할 빈이 많아서 설정 정보가 커지면 설정 정보를 관리하는 것 자체가 부담이 될 수 있기 때문이다. 그렇다면 수동 빈 등록은 언제 사용하면 좋을까? 업무 로직과 기술 지원 로직으로 나누어서 생각을 해보자. 업무 로직 빈 : 웹을 지원하는 컨트롤러, 핵심 비즈니스 로직이 있는 서비스, 데이터 계층의 로직을 처리하는 리포지토리등이 모두 업무 로직이다. 보통 비지니스 요구사항을 개발할 때 추가되거나 변경된다. → 숫자들이 엄청 중..
BeanFactory 스프링 컨테이너의 최상위 인터페이스 스프링 빈을 관리하고 조회하는 역할 담당. getBean() 제공 ApplicationContext BeanFactory 기능을 모두 상속받아서 제공. ApplicationContext 가 상속받는 인터페이스 BeanFactory MessageSource : 메세지 소스를 활용한 국제화 기능 EnvironmentCapable : 환경 변수 (로컬, 개발, 운영등을 구분해서 처리) ApplicationEventPublisher : 이벤트를 발행하고 구독하는 모델을 편리하게 지원 ResourceLoader : 파일, 클래스패스, 외부 등에서 리소스를 편리하게 조회 대부분 BeanFactory를 직접적으로 사용할 일은 거의 없고 부가 기능이 포함된 Ap..