springBoot-Actuator(2)


** 版本:spring-boot-starter-actuator --2.3.3.RELEASE **

端点的访问过程

  • DispatcherServlet(doDispatch)
  • handlerMapping (WebMvcEndpointHandlerMapping)
  • HandlerAdapter (RequestMappingHandlerAdapter)
  • handle对应的方法 (请求最终的handle方法))

端点是如何调用的:
1.springmvc请求一般都是进行DispatcherServlet.java进行寻找对应的handlerMapping 入口方法doDispatch
springBoot-Actuator(2)
2.获取对应的handlerMapping类mappedHandler = getHandler(processedRequest);
springBoot-Actuator(2)
handlerMapping主要是以下几个类
springBoot-Actuator(2)
3.调用DispatcherServlet的getHandlerAdapter获得对应的HandlerAdapter适配器
springBoot-Actuator(2)
此时有4个HandlerAdapter:获取的是(RequestMappingHandlerAdapterr)
springBoot-Actuator(2)
springBoot-Actuator(2)
4.RequestMappingHandlerAdapter调用对应的handle方法
springBoot-Actuator(2)

调用RequestMappingHandlerAdapter的handleInternal的方法
springBoot-Actuator(2)

5.调用继承类RequestMappingHandlerAdapter类实现类的handleInternal方法–>invokeHandlerMethod()
springBoot-Actuator(2)

调用invokeHandlerMethod方法中的ServletInvocableHandlerMethod的invokeAndHandle方法
springBoot-Actuator(2)
springBoot-Actuator(2)

6.调用ServletInvocableHandlerMethod父类的doInvoke方法
springBoot-Actuator(2)

7.调用method的反射方法,调用对应的方法AbstractWebMVCEndpointHandlerMapping的内部类的operationHandler.handle方法
springBoot-Actuator(2)

调用对应方法,该方法调用对应的handler方法
springBoot-Actuator(2)

调用AbstractWebMVCEndpointHandlerMapping的handler方法,通过反射访问info方法
springBoot-Actuator(2)

通过反射实现infoEndpoint类的info方法
springBoot-Actuator(2)

8.调用infoEndpoint的info方法获取系统信息
springBoot-Actuator(2)

端点信息的访问

springBoot–health

获取对应系统磁盘信息
DiskSpaceHealthIndicator
springBoot-Actuator(2)
默认校验值是10M,配置文件是可以配置的,所以对比的是配置文件的
springBoot-Actuator(2)

还可以针对数据库相关的获取对应检查
springBoot-Actuator(2)

springBoot–info

获取info节点
springBoot-Actuator(2)

获取对应信息
springBoot-Actuator(2)

初始化对应的info
springBoot-Actuator(2)

git相关信息
springBoot-Actuator(2)

获取项目信息
springBoot-Actuator(2)