초기화 = 객체 다 만들어지고 의존관계다 생성되고나서 처음으로 뭔가 제대로 실행되는것
그래서 의존관계 주입이 완료되면 스프링은 스프링 빈에게 이제 초기화(앱을 이제 사용하라) 하라고 콜백메서드를 통해 알려줌
또 소멸할 때도 소멸콜백을 줌
- 스프링 빈의 이벤트 라이프사이클
스프링 컨테이너 생성 ->스프링 빈 생성 의존관계 주입 ->초기화 콜백(이제 주입까지 끝났으니 사용해)-> 사용 ->소멸전 콜백 ->스프링 종료
생성자는 필수 정보(파라미터)를 받고, 메모리를 할당해서 객체를 생성하는 책임을 가진다.
반면에 초기화는 이렇게 생성된 값들을 활용해서 외부 커넥션을 연결하는등 무거운 동작을 수행함
따라서 분리하는게 유지보수 측면에서 좋다
이거 두 개 사용하면됨
의존관계 주입 끝나면 @PostConstruct 붙은 메서드를 실행하고
소멸전에는 @PreDestroy 붙은 메서드를 실행하게됨