봄 IOC 컨테이너 콩 다음의 수명주기입니다 :
. ① 콩 인스턴스는 생성자 또는 공장 방법에 의해 생성된다 : 생성자를 호출② 재산권 및 기타 콩 콩 참조의 값을 설정합니다 : 전화 세터콩 인스턴스에 postProcessBeforeInitialization 방법 ③. 콩은 처리기에 전달④ 콩은 초기화 방법 :. 초기화 메소드를 호출⑤. Bean 인스턴스는 방법 postProcessAfterInitialization 콩 포스트 프로세서에 전달⑥. 사용 콩 준비컨테이너 닫을 때 ⑦, 메소드 호출 콩의 파괴는 파괴-방법 :를.
콩 초기화 및 파괴 방법
:
콩 노드 수
INIT-방법
과
방식의 파괴
초기화와 콩 삭제 방법을 구성하는 방법 :
<콩 ID = "사람"클래스 = "com.demo.spring.bean.Person"
"초기화하기"INIT-방법 =-destroy 메소드 = "파괴"
>
<속성 명 = "이름"값 = "잭"> </ property>를
</ 콩>
주 :
방법의 ApplicationContext 인터페이스는, 밀폐 용기 아니다 IOC 용기 인터페이스 ApplicationContext를 기준으로 사용하기 때문에, 파괴-방법이 기능하지 ApplicationContext의 하위 인터페이스 사용할 필요
ConfigurableApplicationContext를
.
상세 콩 포스트 프로세서
:
포스트 프로세서 콩 : 콩 봄 특별 제공
. ① 콩 사후 처리기가 호출 초기화 처리 허용 : 전에 추가적인 처리 후에 콩 (즉 INIT-방법에 대응하는 빈 노드 속성의 방법 후).
. ② 모든 콩 포스트 프로세서 하나 콩 인스턴스 IOC 컨테이너 한 처리가 아니라 하나의 예를보다 일반적인 애플리케이션되어 콩 특정 기준에 따라 정확성 콩 등록 또는 변경 의하면
속성.
③. 콩에 대한 포스트 - 프로세서, 필요 인터페이스 BeanPostProcessor를 구현하는
공용 클래스 PersonPostProcessor 구현 BeanPostProcessor {/ ***는 arg0 : 빈 용기의 IOC 인스턴스*이며 Arg1 : 빈의 이름으로 IOC 컨테이너* /@우세하다공공 객체 postProcessAfterInitialization (개체는 arg0, 문자열 ARG1)는 BeansException를 {던졌습니다경우 (사람 instanceof를 것들은 arg0) {에서 System.out.println ( "postProcessAfterInitialization");사람이 사람 = (사람)는 arg0;문자열 이름은 person.getName을 () =;만약 (! name.equals ( "AAAA")) {에서 System.out.println ( "이름 값이 BBBB를해야합니다!");person.setName ( "BBBB");}}arg0를 반환;}@우세하다공공 객체 postProcessBeforeInitialization (개체는 arg0, 문자열 ARG1)는 BeansException를 {던졌습니다에서 System.out.println ( "postProcessBeforeInitialization");arg0를 반환;}}
④. 콩 포스트 프로세서 필요는 선박 IOC으로 구성 될,하지만 콩은 자동으로 사용 포스트 프로세서 인 컨테이너 것이다 봄 IOC의 id 속성의 자동 식별을 지정할 필요가 없습니다.
<bean 클래스 = "com.demo.spring.bean.PersonPostProcessor"/ >