<aside> 💡 스프링은 경량 컨테이너로서 객체 생성, 소멸과 같은 생명 주기(Life Cycle)을 관리하며 스프링 컨테이너로부터 필요한 객체를 얻을 수 있다
→ 스프링 컨테이너에 의해서 만들어진 객체를 스프링 빈
이라고 부름
</aside>
스프링 빈과 일반 자바 객체와의 차이점은 없고,
스프링 컨테이너에 의해서 만들어지고 관리되는 객체를 스프링 빈이라 할 뿐임
**모든 객체에는 생명주기가 존재
**하는데 스프링에서 빈 객체의 이벤트 사이클은 아래처럼 진행된다.
스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 → 사용 → 소멸전 콜백 → 스프링 종료
인터페이스(InitializingBean, DisposableBean)
InitializingBean - afterPropertiesSet() 통해 값이 초기화 된 후 실행되는 콜백 메소드 지원
DisposableBean - destroy() 통해 빈 객체 소멸전 수행해주는 콜백 메소드를 지원
설정 정보에 초기화 메서드, 종료 메서드 지정
@PostConstruct(초기화 콜백)
, @PreDestroy(소멸전 콜백)
등 사용
어노테이션 명도 직관적이기 때문에 최신 스프링에서 권장하는 방법이다.