스프링 컨테이너의 생애
BEAN OBJECT LIFE_CYCLE
- BEAN 객체의 생애
- 객체생성 -> 의존설정 -> 초기화 -> 소멸
- 스프링컨테이너가 초기화될 때 Bean 객체생성 및 의존 주입
- Bean 객체 초기화
- 스프링 컨테이너 종료시 Bean 객체의 지정된 메서드호출
BEAN 생성과 소멸관련 메서드
-
객체를 생성할 때 호출되는 메서드가 정의된 인터페이스
-
객체가 소멸될 때 호출되는 메서드가 정의된 인터페이스
- 예시
커스텀 메서드
-
모든 클래스가 InitializingBean인터페이스와 Disposable인터페이스를 구현할 수 없을 수도 있다.
-
소스코드 없이 클래스만 외부에서 제공받아 스프링 Bean으로 사용하려면 코드가 없으므로 인터페이스를 직접 구현할 수 없다.
-
초기화와 소멸에 사용되는 메서드를 직접 지정해주면 스프링 객체로 사용이 가능
- InitializingBean 인터페이스 기능을 대신해 init-mehtod 속성
- DisposableBean 인터페이스 기능을 대신해 destroy-mehtod 속성
-
인터페이스로 구현못했을 경우 예시
-
xml 설정
📌 자바설정 사용
- @Bean 어노테이션의 initMehtod속성과 destroyMethod속성을 사용
- @Bean 어노테이션으로 initMehtod를 지정할 메서드에 적용하면서 destroy속성만 지정가능
☝🏻Tip++;
초기화 및 소멸 과정에서 사용되는 메서드는 파라미터가 없어야한다.
객체의 범위
- 기본적으로 스프링컨테이너는 Bean객체를 하나만 생성
- 필요에 따라 Singleton을 적용하지 않는 Bean이 필요한 경우 Prototype의 Bean을 만들 수 있다.
-xml설정
-java설정