1. init-method : 커스텀 초기화 메서드
2. destroy-method : 커스텀 소멸 메서드
3. BeanNameAware 인터페이스
=> 빈 객체가 자기 자신의 이름을 알아야 하는 경우에 사용.
=> 빈 클래스가 BeanNameAware를 구현한 경우 컨테이너는 setBeanName( )메서드를 호출하여 빈 객체의 이름을 전달.
=> setBeanName(String arg) : 객체가 생성될 때 해당 객체(빈)의 id(혹은 name)값을 전달 받는 메서드
LifeBean.java
LifeBeanImpl.java
ExamMain.java
life.xml
결과
ExamMain.java에서 bean.lifeMethod( )를 실행했을 경우 결과창을 잘 보면 사용자(개발자)가 설정한 초기화 메소드가 실행된 것을 볼 수있다.
이는 <bean> 태그의 init-method, destroy-method 속성 값을 설정해주면 스프링 컨테이너가 빈을 생성시 init-method="...", 종료(제거)시 destroy-method="..."의 설정 값을 실행하게 된다.
4. ApplicationContextAware 인터페이스
=> 빈 객체가 필요한 객체를 스프링 컨테이너(BeanFactory나 ApplicationContext)로부터 직접 사용해야 할 경우
LifeBean.java
LifeBeanImpl.java
OtherBean.java
OtherBeanImpl.java
ExamMain.java
life02.xml
결과
위의 예제에서는 ApplicationContextAware 인터페이스를 사용했지만 BeanFactoryAware 인터페이스를 사용해도 된다.
BeanFactoryAware를 사용할 경우는 아래와 같은 방법으로 BeanFactory를 정의한다.
public void setBeanFactory(BeanFactory factory) throws BeansException{
this.factory = factory;
}
/** 위 2개의 결과창에서 주의깊게 볼 점은 바로 실행순서이다. 실행순서가 어떻게 되는지 봐두는 것도 도움이 될 것이다. **/
'프로그램 > Spring 2.5' 카테고리의 다른 글
[7일차] AOP : Aspect Oriented Programming - 관점 지향 프로그래밍 (0) | 2010.01.27 |
---|---|
[6일차] 빈의 라이프 사이클 (InitializingBean/DisposableBean 인터페이스) (0) | 2010.01.18 |
[4일차] 빈 객체 범위 (0) | 2010.01.17 |
[3일차] 의존 관계 설정 (7) | 2010.01.13 |
[2일차] Bean 생성 및 사용 (6) | 2010.01.13 |