spring 감청 org.springframework.context.Smart Lifecycle 시작

org.springframework.context.SmartLifecycle
이 인터페이스 클래스 를 실현 하려 면 Spring 의 모든 Bean 로드 가 완료 되 고 초기 화 된 후에 만 실 행 됩 니 다.이 인 터 페 이 스 를 통 해 정 해진 시간 작업,MQ 읽 기 감청 등 정 보 를 초기 화 할 수 있 습 니 다.
org.springframework.context.Smart Lifecycle 인 터 페 이 스 는 org.springframework.context.Lifecycle 와 org.springframework.context.Phased 인 터 페 이 스 를 계승 했다.
그 중에서 org.springframework.context.Phased 인 터 페 이 스 는 클래스 의 로드 순 서 를 제어 하 는 방법 이 있 습 니 다.
org.springframework.context.Lifecycle 은 시스템 시작 과 종료 시 실행 을 제어 하 는 두 가지 방법 이 있 습 니 다.
 
상세 한 설명 은 다음 과 같다.


import org.springframework.context.SmartLifecycle;
import org.springframework.stereotype.Component;

/**
 *      bean          
 * 
 * @author lenovo
 *
 */
@Component
public class SmartLifecycleTest implements SmartLifecycle {

	private boolean isRun = false;

	/**
	 *        (               ) ,      
	 *               SmartLifecycle   isAutoStartup()        。
	 *    “true”,        
	 */
	@Override
	public void start() {
		this.isRun = true;
		System.out.println("start");
	}

	/**
	 *            Lifecycle      ,   SmartLifecycle      
	 *   stop()   stop(Runnable callback)      ,   SmartLifecycle     
	 * 
	 */
	@Override
	public void stop() {
		System.out.println("stop");
	}

	/**
	 *        false ,start       
	 *        true ,stop(Runnable callback) stop()       
	 */
	@Override
	public boolean isRunning() {
		System.out.println("isRunning");
		return isRun;
	}

	
	/**
     *             SmartLifecycle  ,     start      getPhase           。
* :1 2 ,-1 0 。 stop ,getPhase stop , 。 */ @Override public int getPhase() { System.out.println("getPhase"); return 0; } /** * start , true start , false */ @Override public boolean isAutoStartup() { System.out.println("isAutoStartup"); return true; } /** * martLifecycle , isRunning true , */ @Override public void stop(Runnable callback) { // TODO Auto-generated method stub System.out.println("stop"); this.isRun = false; callback.run(); } }

 

좋은 웹페이지 즐겨찾기