- 학습 목표 1 : 빈 생명주기 콜백
스프링 컨테이너가 빈의 생명주기 중 특정 시점에 자동으로 호출하는 메서드
콜백
- 특정 이벤트가 발생했을 때, 시스템에서 호출되는 메서드
- 일반적으로 사용자가 직접 호출하는 것이 아니라, 미리 정의해 둔 함수를 특정 시점이나 조건에서 자동으로 호출하는 방식
-
사용 이유
- 빈의 초기화화 소멸 과정에서 필요한 추가 작업을 자동으로 수행할 수 있다.
-
사용 방법
-
InitializingBean
과DisposableBean
인터페이스를 구현afterPropertiesSet()
메서드를 구현하여 빈의 초기화 직후에 호출destroy()
메서드를 구현하여 빈의 소멸 직전에 호출
public class MyBean implements InitializingBean, DisposableBean { @Override public void afterPropertiesSet() throws Exception { // 초기화 콜백 메소드 System.out.println("빈이 초기화되었습니다."); } @Override public void destroy() throws Exception { // 소멸 콜백 메소드 System.out.println("빈이 소멸됩니다."); } }
-
@PostConstruct
와@PreDestroy
어노테이션을 사용@PostConstruct
: 빈의 초기화 직후에 호출@PreDestroy
: 빈의 소멸 직전에 호출
public class MyBean { @PostConstruct public void init() { // 초기화 콜백 메소드 System.out.println("빈이 초기화되었습니다."); } @PreDestroy public void destroy() { // 소멸 콜백 메소드 System.out.println("빈이 소멸됩니다."); } }
-
@Bean
어노테이션의initMethod
와destroyMethod
속성을 사용@Configuration public class AppConfig { @Bean(initMethod = "init", destroyMethod = "destroy") public MyBean myBean() { return new MyBean(); } }
-
-
활용 예시
- 세션 단위에서 캐싱 구현
- 데이터베이스 연결 및 해제
- 스크럼 중 완료한 작업:
빈 생명주기 콜백
학습 - 빈 생명주기 콜백에 대해 자세히 알게 되었다. 스프링 컨테이너가 빈의 생명주기 중 특정 시점에 자동으로 호출하는 메서드를 콜백이라고 한다.
- 빈의 생명주기 속에서 콜백 메서드를 어떻게 구현해야 할지 알게 되었다. 프로젝트를 통해서 직접 경험해보면 더 이해가 잘 될 것 같다.
- 제푸의 강의 자료