带你理解springboot中的endpoint

背景:我们如果要查询一个商品列表的信息,需要调用后台商品列表一个接口,类似:

 

但,如果我们要了解一个系统的状况信息呢,如健康状态,内存使用率,cpu占用率;此时我们还是一样需要调用一个接口,但这个接口是给运维人员使用的或者内部使用的,

并非给用户端调用的;为了区分这种场景,springboot新增了EndPoint的方式来实现:如下:

 

你可以简单把endPoint方式实现接口的当作特殊的RequestMapping方式,其实你看底层源码,

会发现他们在DispatcherServlet中的逻辑是一样的既然是给内部或者运维使用的,

这些接口默认是不开放的,也就是外部不能访问,我们要使用,需要先在yml中配置,在这之前需要先引入依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

 

那么我们回到上面那个HealthEndPoint看看该接口的访问路径:http:ip:端口/actuator/health   看起来是不是跟RequestMapping的访问方式一致呢;

那我们如何自己定义Endpoint呢?

 

  访问一下:

 

 总结:可以把endPoint看成特殊的RequestMapping,很多框架使用该特性,如健康检查

 

 

 






 

posted @ 2021-09-11 17:10  yangxiaohui227  阅读(3496)  评论(0编辑  收藏  举报