스프링 빈

<aside> 💡 스프링은 경량 컨테이너로서 객체 생성, 소멸과 같은 생명 주기(Life Cycle)을 관리하며 스프링 컨테이너로부터 필요한 객체를 얻을 수 있다

→ 스프링 컨테이너에 의해서 만들어진 객체를 스프링 빈이라고 부름

</aside>

스프링 빈과 일반 자바 객체와의 차이점은 없고,

스프링 컨테이너에 의해서 만들어지고 관리되는 객체를 스프링 빈이라 할 뿐임


스프링 빈 생명주기

**모든 객체에는 생명주기가 존재**하는데 스프링에서 빈 객체의 이벤트 사이클은 아래처럼 진행된다.

스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 → 사용 → 소멸전 콜백 → 스프링 종료

초기화 콜백 방법

  1. 인터페이스(InitializingBean, DisposableBean)

    InitializingBean - afterPropertiesSet() 통해 값이 초기화 된 후 실행되는 콜백 메소드 지원

    DisposableBean - destroy() 통해 빈 객체 소멸전 수행해주는 콜백 메소드를 지원

  2. 설정 정보에 초기화 메서드, 종료 메서드 지정

  3. @PostConstruct(초기화 콜백)@PreDestroy(소멸전 콜백) 등 사용

    어노테이션 명도 직관적이기 때문에 최신 스프링에서 권장하는 방법이다.

정리