티스토리 뷰

* 개요

어플리케이션 구동후 실행되는 메서드 만드는 방법

이벤트 리스너를 만들어서

구동 후 발생하는 이벤트인 ContextRefreshedEvent 를 받으면 됨.


* 환경

Spring 2.5


* 참고 

https://stackoverflow.com/questions/8686507/how-to-add-a-hook-to-the-application-context-initialization-event


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






공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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 29 30 31
글 보관함