본문 바로가기
반응형
Programming/Spring Framework

Spring 빈/컨테이너 생명주기 (Lifecycle)

by JAMINS 2020. 5. 24.

Spring 컨테이너 생명주기 (Life Cycle)

생성, 빈 설정, 사용, 소멸 순으로 구성되어있다.

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();

// 빈 추가로 등록
ctx.register();

// 갱신해야 반영됨
ctx.refresh();

// 소멸, 빈도 함께
ctx.close()

// JVM소멸시 자동으로 소멸되게끔
ctx.registerShutdownHook()

Bean 생명주기 (Lifecycle)

객체 생성 - 초기화 - 사용 - 소멸 순으로 유지된다.
스프링 컨테이너에 의해 객체가 생성되고 초기화와 소멸의 과정을 거친다. 각 초기화와 소멸을 구현하는 방법에는 각각 3가지가 존재한다.

1. 초기화

방법에는 3가지가 존재한다.

  1. @PostConstruct 활용
  2. InitializingBean 인터페이스 구현하여 사용, afterPropertiesSet 메서드 override
  3. 커스텀 init 메서드
    • 빈 정의 xml에 init-method 로 메서드 명 지정
    • @Bean(initMethod="init"), init메서드 활용

2. 소멸

  1. @PreDestroy
  2. DisposableBean 인터페이스
  3. 커스텀 destroy 메서드 정의

3. 스프링 컨테이너, 빈 이름 가져오기

  • ApplicationContextAware
  • BeanNameAware
    인터페이스를 활용한다. implement한 클래스에서 사용할 수 있다.

4. Bean 범위(scope)

  • Singleton (default)
  • Prototype
    • 매번 호출될 때마다 인스턴스 생성됨
    • 스프링 컨테이너가 소멸되도 인스턴스들은 계속 유지됨

'Programming > Spring Framework' 카테고리의 다른 글

Spring Security에 관하여 #1  (0) 2020.05.24
Spring AOP Proxy에 관하여  (0) 2020.05.24
Spring RestTemplate  (0) 2019.11.27
Spring 트랜잭션에 대해 알아보자  (0) 2019.11.25
Spring MVC  (0) 2019.11.22

댓글