Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- spring boot
- 프레임워크
- 자바
- 코드
- JPA
- 그리디알고리즘
- 클린코드
- 애자일프로그래밍
- 그리디
- 개발
- API
- Java
- database
- ES
- cleancode
- 애자일
- 코딩
- framework
- 알고리즘
- 읽기쉬운코드
- 스프링
- Elasticsearch
- Baekjoon
- 백준
- 엘라스틱서치
- 개발자
- 애자일기법
- Spring
- 코딩테스트
- 데이터베이스
Archives
- Today
- Total
튼튼발자 개발 성장기🏋️
#3 : Container Life Cycle 본문
반응형
스프링 컨테이너의 생명 주기에 대해 알아보자.
이전에 작성했던 코드를 다시 한 번들여다 보자.
public static void main(String[] args) {
String config = "classpath:appContext.xml";
GenericXmlApplicationContext appContext = new GenericXmlApplicationContext(config); // 컨테이너 생성
LoggerUtil logger = appContext.getBean("loggerUtil", LoggerUtil.class); // 컨테이너 설정
logger.log(); // 컨테이너 사용
appContext.close(); // 컨테이너 종료
}
컨테이너는 [생성 -> 설정 -> 사용 -> 종료]순으로 이루어진다. 우리는 bean 초기화 될 때, 컨테이너 종료 전에 접근이 가능하다.
다음 인터페이스 상속만 받는다면 충분하다!
- InitializingBean
- DisposableBean
public class LoggerUtil implements InitializingBean, DisposableBean{
//...
@Override
public void destroy() throws Exception {
System.out.println("[컨테이너 반납]");
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("[컨테이너 설정]");
}
}
이 방법은 어노테이션으로도 지원한다.
- @PreDestroy
- @PostConstruct
public static void main(String[] args) {
String config = "classpath:appContext.xml";
GenericXmlApplicationContext appContext = new GenericXmlApplicationContext(config);
LoggerUtil logger = appContext.getBean("loggerUtil", LoggerUtil.class);
logger.log();
appContext.close();
}
public class LoggerUtil {
//...
@PreDestroy
public void beforeEnd() {
System.out.println("[컨테이너 반납]");
}
@PostConstruct
public void afterInit() {
System.out.println("[컨테이너 설정]");
}
}
어노테이션을 사용하는 것이 좋을까? 아니면 인터페이스를 상속 받아서 사용하는 것이 좋을까?
반응형
'Framework > spring' 카테고리의 다른 글
#6 : AOP (Aspect Oriented Programming) (0) | 2020.05.03 |
---|---|
#5 : bean setting (0) | 2020.05.02 |
#4 : Bean Scope (0) | 2020.05.01 |
#2 : DI 활용 (0) | 2020.05.01 |
#1 : spring의 핵심 DI(Dependency Injection) (0) | 2020.04.30 |