나누고 싶은 개발 이야기

Data Engineer로서 기록하고 공유하고 싶은 기술들. 책과 함께 이야기합니다.

Framework/spring

[spring] lifecycle mechanisms

devidea 2017. 8. 29. 14:45
spring은 bean의 생명주기를 관리하는 3가지 방법이 있다.
  • InitializingBean, DisposableBean
  • init(), destroy()
  • @PostConstruct, @PreDestroy

하나의 bean에 대해 여러 lifecycle이 구성되어 있을 경우, 아래와 같은 순서대로 실행이 된다.

초기화 순서
@PostConstrctInitializingBean에 정의된 afterPropertiesSet() 콜백 → 사용자 정의 init() 메서드


@PostConstrct
@Sevice
public class LifeCycleTest {

  @PostConstruct
  public void postConstruct() {
    System.out.println("postConstruct");
  }
}
InitializingBean
@Service
public class LifeCycleTest implements InitializingBean {

  @Override
  public void afterPropertiesSet() throws Exception {
    System.out.println("afterPropertiesSet");
  }
}
사용자 정의 init() 메서드
@Bean(initMethod = "init")
public LifeCycleTest lifeCycleTest() {
  return new LifeCycleTest();
}

public class LifeCycleTest {
  public void init() {
    System.out.println("init");
  }
}

소멸 순서
@PreDestroy DisposableBean에 정의된 destory() 콜백 → 사용자 정의 destroy() 메서드


[참고]


반응형