객체의 초기화와 종료 작업이 필요하다.
스프링 빈은 간단하게 라이프 사이클을 가진다
"객체 생성 -> 의존관계 주입"
"초기화 콜백" : 빈이 생성되고, 빈의 의존 관계 주입이 완료된 후 호출
"소멸전 콜백" : 빈이 소멸되기 직전에 호출
참고 : "객체의 생성과 초기화를 분리하자"
번외
ConfigurableApplicationContext ->(밑에(부모)) AnnotationConfigApplicationContext ->(밑에(부모)) ApplicationContext
implements InitializingBean = 초기화 시켜주는 인터페이스
DisposableBean = disconnet() 호출
초기화, 소멸 인터페이스 단점
이 인터페이스는 스프링 전용 인터페이스, 스프링 전용 인터페이스에 의존한다.
초기화, 소멸 메서드의 이름을 변경할 수 없다.
내가 코드를 고칠 수 없는 외부 라이브러리에 적용할 수 없다.
@Bean 등록했던 스프링 빈에 (@Bean initmethod ="메소드명 ", destroyMethod = "메소드명 ")을 해준다.
장점 : 코드가 아니라 설정정보를 사용 -> 코드를 고칠수 없는 외부 라이브러리에도 적용 가능하다