노출 인터뷰 : springbean 수명주기

봄 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"/ >

 

게시 11 개 원래 기사 · 원 찬양 11 ·은 10000 +를 볼

추천

출처blog.csdn.net/zh554275855/article/details/80440644