Spring 컨테이너 생명주기 (Life Cycle)
생성, 빈 설정, 사용, 소멸
순으로 구성되어있다.
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
// 빈 추가로 등록
ctx.register();
// 갱신해야 반영됨
ctx.refresh();
// 소멸, 빈도 함께
ctx.close()
// JVM소멸시 자동으로 소멸되게끔
ctx.registerShutdownHook()
Bean 생명주기 (Lifecycle)
객체 생성 - 초기화 - 사용 - 소멸
순으로 유지된다.
스프링 컨테이너에 의해 객체가 생성되고 초기화와 소멸의 과정을 거친다. 각 초기화와 소멸을 구현하는 방법에는 각각 3가지가 존재한다.
1. 초기화
방법에는 3가지가 존재한다.
@PostConstruct
활용InitializingBean
인터페이스 구현하여 사용,afterPropertiesSet
메서드 override- 커스텀 init 메서드
- 빈 정의 xml에
init-method
로 메서드 명 지정 @Bean(initMethod="init")
, init메서드 활용
- 빈 정의 xml에
2. 소멸
@PreDestroy
- DisposableBean 인터페이스
- 커스텀 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 |
댓글