org.springframework.beans.factory.InitializingBean 인터페이스는, 컨테이너로부터 필요한 프로퍼티들을 bean에 모두 세팅받은 후에 초기화 작업을 수행할 수 있도록 해준다. InitializingBean 인터페이스는 하나의 메소드를 가진다.
void afterPropertiesSet() throws Exception;
우리는 InitializingBean 인터페이스를 사용하지 않는 것을 권장한다. 스프링과 불필요한 결합을 맺게되기 때문이다. 대신에, @PostConstruct 어노테이션이나 POJO 초기화 메소드를 사용하는 것을 추천한다. XML 기반의 설정 메타데이터에서는, void이면서 인자가 없는 메소드의 이름을 특정하기 위해 'init-method' 속성을 사용할 수 있다. 자바 설정에서는 @Bean의 initMethod 속성을 사용할 수 있다. '라이프사이클 콜백 받기'를 참고하라. 다음 예시를 보자.
<bean id="exampleInitBean" class="examples.ExampleBean" init-method="init" />
public class ExampleBean {
public void init() {
// 초기화 작업을 한다.
}
}
선행하는 예시들은 다음 예시들과 거의 같은 효과를 가진다.
<bean id="exampleInitBean" class="examples.AnotherExampleBean" />
public class AnotherExampleBean implements InitializingBean {
@Override
public void afterPropertiesSet() {
// 초기화 작업을 한다.
}
}
하지만, 전자의 두 예시는 스프링의 코드와 결합되지 않는다.
'SpringFramework Core - I. IoC 컨테이너 > 6. Bean 커스터마이징하기' 카테고리의 다른 글
6.1.4. 라이프사이클 메커니즘들 결합시키기 (0) | 2020.03.23 |
---|---|
6.1.3. 기본적인 초기화/소멸 메소드들 (0) | 2020.03.23 |
6.1.2. 소멸 콜백 (0) | 2020.03.23 |
6.1. 라이프사이클 콜백 (0) | 2020.03.23 |
6. Bean의 성질(nature) 커스터마이징하기 (0) | 2020.03.23 |