스프링 빈
- 스프링 빈은 객체 생성 뒤, 의존관계 주입이 끝난 다음에 데이터를 사용할 수 있는 준비가 끝난다.
- 스프링은 의존관계 주입 및 컨테이너 종료 때, 시점을 알려주는 기능을 제공한다.
스프링 빈 라이프 사이클
스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸 전 콜백
스프링이 지원하는 빈 생명주기 콜백 방법
- 인터페이스
- 설정 정보에 초기화 메소드, 종료 메소드 지정
- 어노테이션
- 인터페이스
- 인터페이스 InitializingBean, DisposableBean
- 초기화, 소멸 메소드 이름 변경이 불가능하다.
- 코드 수정이 불가능한 외부 라이브러리에 적용할 수 없다.
- 스프링 인터페이스로 스프링에 의존한다.
- 빈 등록 초기화, 소멸 메소드
- 메소드 이름을 자유롭게 줄 수 있다.
- 스프링에 의존하지 않는다.
- 코드 수정이 불가능한 외부 라이브러리에도 적용할 수 있다.
- 어노테이션 (@PostConstruct, @PreDestroy)
- 스프링에서 권장하는 방법이다.
- JSR-250라는 자바 표준으로, 스프링 외의 다른 컨테이너에서도 동작한다.
- 외부 라이브러이에는 적용하지 못하지만, 그럴 경우 @Bean의 기능을 사용한다.
- @Bean의 initMethod, destroyMethod 사용