1.创建listener类:
package cn.edu.tju.component;
import org.springframework.boot.availability.AvailabilityChangeEvent;
import org.springframework.boot.availability.LivenessState;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
@Component
public class MyAvailabilityStateExporter {
@EventListener
public void onStateChange(AvailabilityChangeEvent<LivenessState> event) {
switch (event.getState()) {
case CORRECT:
System.out.println("correct......");
break;
case BROKEN:
System.out.println("broken......");
break;
}
}
}
2.触发应用的availability状态改变
package cn.edu.tju.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.availability.AvailabilityChangeEvent;
import org.springframework.boot.availability.LivenessState;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LivenessController {
@Autowired
ApplicationEventPublisher applicationEventPublisher;
@RequestMapping("/live")
public String test(){
AvailabilityChangeEvent.publish(applicationEventPublisher,new NullPointerException("info"),
LivenessState.BROKEN);
return "ok";
}
}
3.接口调用时的输出