0
点赞
收藏
分享

微信扫一扫

SpringBoot 官方文档示例:(5)通过Listener获取应用的Availability状态

eelq 2022-07-27 阅读 71


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.接口调用时的输出

SpringBoot 官方文档示例:(5)通过Listener获取应用的Availability状态_spring


举报

相关推荐

0 条评论