8-2. ~ 8-4. 생명주기 콜백 3가지 방법
1. 인터페이스 InitializingBean, DisposableBean
생성자 끝나고 afterPropertiesSet 실행.
마지막엔 ac.close()실행 내부에서 destroy 실행됨.
1. 생성자 호출 단계에선 url이 null
2. 의존관계 주입 끝 나고 afterPropertiesSet 로 가서 connect호출
3. 3번 째 줄이 ac.close() 때문에 스프링 닫는다는 로그
이건 거의 안 씀
----------------------------------------------------- 8-3. 빈 등록 초기화, 소멸 메서드
@Bean(initMethod = , destroyMethod = ) 을 지정해준다.
그러니까 원래
@Bean(initMethod = "init", destroyMethod = "close") 에서 destroyMethod의 디폴트 값은 "(inferred)" 로 되어있다. @Bean(initMethod = "init", destroyMethod = "(inferred)")
수많은 외부라이브러리들은 대부분 close, shutdown 이라는 종료 메서드를 사용한다. -> destroyMethod 안적어도 자동동작된다. ( 물론 종료메서드 이름이 close, shutdown 일 때만 )
----------------------------------------------------- 8-4. 애노테이션 @PostConstruct, @PreDestroy
결론 이 방법 쓰면됨 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
@PostConstruct, @PreDestroy
생성이 된 이후에, 소멸되기 직전에
끝. ( @Bean에서 아무것도 안붙여도됨 )
javax 는 자바에서 공식적으로 지원하는 것.