[Spring] Beans 생명주기
★스프링 컨테이너/bean객체 생명주기 new GenericXmlApplicationContext()를 호출하는 시점에 스프링 컨테이너가 생성된다. 스프링 컨테이너가 만들어지고 나면 bean객체들이 생성이 되고, 의존주입관계 역시 함께 형성이 된다.
context.close()를 호출하는 시점에 컨테이너가 소멸한다.
이 시점에 컨테이너 내부의 bean객체들도 함께 사라진다.
결국 스프링컨테이너의 생명주기와 bean객체의 생명주기는 같다고 볼 수 있다.
★스프링 프레임워크는 InitializeBean과 DisposableBean이라는 인터페이스를 제공하는데 각각 afterPropertiesSet(), destroy()메소드를 포함한다. 빈 객체가 생성, 소멸될 때 호출되는 콜백메소드이다. 사용법은 인터페이스를 직접 구현하는 방법과, method속성을 이용하는 방법 2가지가 있다.
★인터페이스로 구현하는 방법 bean객체로 사용할 DTO에 InitializeBean, DisposableBean 인터페이스를 구현하면 끝
★method속성을 이용하는 방법 스프링 설정파일에 bean객체의 프로퍼티에 init-method=”메소드이름”와 destroy-method=”메소드이름”를 추가해준 뒤, 해당 DTO에 그 메소드를 정의해주면 끝 두가지 방법 중첩해서도 사용 가능