스프링 빈은 수명주기를 이해하기 쉽게

  라이프 사이클 봄 콩은 문제가 오랜 시간 동안 저를 당혹이다, 나는 혼란, 황홀했다, 플러스 많은 코드가 내 클라우드의 판독 볼 수많은에 대한 답을 찾을 수있는 인터넷 안개는 오랜 시간이 지나면 요약, 그리고 마지막으로 정렬이 하나의 논리 밖으로 사고.

  봄 콩의 라이프 사이클은 실제로 프로파일의 기간의 주위에 회귀 할 수 있습니다 :

1 <콩 ID = "학생" 클래스 = "com.wx.test.entity.Student">
 2          <속성 이름 = "이름"값 = "小明"/>  
 3          <속성 이름 = "연령"값 = "12" /> 
 4 </ 콩>

  상기는 시작 빈의 라이프 사이클 관련 특성 (이름, 나이) 빈을 생성하고 주입하는 데 사용되는 매우 간단한 코드입니다. 물론, 문제는이 사람이 우리가 거의 약을 걱정하지 이러한 인터페이스를 구현하는 데 필요한 인터페이스를 많이 포함하기 때문에 콩의 수명주기는, 실제로는 그것보다 더 복잡, 단순한 성능, 내가이 요약 빈의 라이프 사이클은 다음으로 나눌 수 있습니다 단계 : 

  ① Spring IoC 컨테이너는 빈의 정의를 찾아 Bean을 인스턴스화합니다. 
  의존성 주입 콩에 대한 ② Spring IoC 컨테이너. 
  ③ 경우 BeanNameAware 콩 구현은 인터페이스, 방법 setBeanName 콩 ID를 전달한다. 
  ④ 콩 구현은 인터페이스가 setBeanFactory 방법의 BeanFactory의 객체를 것이다 BeanFactoryAware와합니다. 
  ⑤ 빈이있는 BeanPostProcessor 인터페이스를 구현하는 경우, 그것은 postProcessBeforeInitialization 메서드 호출. 
  ⑥ 빈이 InitializingBean 표시 인터페이스를 구현하는 경우, 그것은 afterPropertySet 메서드 호출. 
  관련 위해 BeanPostProcessors와 콩 객체가있는 경우 ⑦ 이러한 개체의 postProcessAfterInitialization가 호출됩니다. 
  ⑧ 빈은 더 이상 컨테이너에서 제거되면 빈 호출되지 않을 때.
  ⑨ bean이 메소드 호출을 파괴 DisposableBean 표시 인터페이스를 구현하는 경우, 빈 인스턴스를 파괴합니다.

  당신은 좀 더 복잡 있다고 생각한다면, 당신은 아마 이런 식으로 해석 할 수 있습니다 :

  봄 콩의 수명주기는 콩이 더 이상 호출되는 콩 때, 먼저 빈 인스턴스를 초기화, 다음 스프링 IoC 컨테이너 빈 의존성 주입 한 다음 봄 콩 인터페이스의 일련의 구현, 그리고 마지막으로 컨테이너에서 제거 간단하고 이해하기 쉬운 빈 구현이 인터페이스 DisposableBean 표시하면 그 32 파괴 방법이라고합니다.

 

  마지막으로, 일부 내용을 추가, 당신이 볼 수없는 이해하지 않는다 :

  

빈의 수명주기를 관리하는 책임을 맡은 스프링 빈 공장은 스프링 컨테이너에 만들어합니다. 빈의 라이프 사이클은 두 개의 콜백 (전화 뒷면) 성분의 방법으로 구성되어 있습니다.
    - 콜백 방법은 초기화 후했다.
    - 콜백 방법은 파괴되기 전에 호출됩니다.

스프링 프레임 워크는 콩 라이프 사이클 이벤트를 관리 할 수있는 다음과 같은 네 가지 방법을 제공합니다 :

- InitializingBean 표시 및 DisposableBean 표시 콜백 인터페이스
 - 다른 인식 인터페이스의 특별 행동
 - 사용자 정의 빈 초기화 설정 파일 () 메소드 파괴 () 메소드
 - @PostConstruct 방법 및 @PreDestroy 코멘트

 

 

 

추천

출처www.cnblogs.com/aqiu-jiang/p/11808526.html