티스토리 뷰
* 개요
어플리케이션 구동후 실행되는 메서드 만드는 방법
이벤트 리스너를 만들어서
구동 후 발생하는 이벤트인 ContextRefreshedEvent 를 받으면 됨.
* 환경
Spring 2.5
* 참고
http://m.blog.daum.net/iamuzooin/102?categoryId=3
* 절차
1. Bean 이 될 클래스에 ApplicationListener 를 implements
2. onApplicatcionEvent() 메서드를 구현
이 메서드는 앱 실행동안 이벤트 발생시 매번 호출되게 됨.
3. 그 중 ContextRefreshedEvent 에 대한 처리를 함
@Override
public void onApplicationEvent(ApplicationEvent event) {
log.info("호출 완료 "+event);
if(event instanceof ContextRefreshedEvent) {
run();
}
}
* 메서드가 두 번씩 호출되는건
- 나의 경우
onApplicationEvent() 가 '구동 완료시' 에만 실행된다고 오해해서
애초에 ContextRefreshedEvent 를 따로 처리하는 로직을 만들지 않은 경우.
- 기타
https://stackoverflow.com/questions/6164573/why-is-my-spring-contextrefreshed-event-called-twice
'SW개발 > Spring Framework' 카테고리의 다른 글
slf4j failed to load class org.slf4j.impl.staticloggerbinder (0) | 2019.04.26 |
---|---|
Neither BindingResult nor plain target object for bean name 'categoryOptions' available as request attribute (0) | 2019.02.27 |
Spring 종료 전 호출 (0) | 2018.08.21 |
eclipse - 웹 프로젝트 Context root 변경하는 방법 (0) | 2018.08.17 |
mysql connector - MySQL 호환성 (0) | 2018.05.11 |