springBoot-Actuator(2)
springBoot-Actuator的源码逻辑
** 版本:spring-boot-starter-actuator --2.3.3.RELEASE **
端点的访问过程
- DispatcherServlet(doDispatch)
- handlerMapping (WebMvcEndpointHandlerMapping)
- HandlerAdapter (RequestMappingHandlerAdapter)
- handle对应的方法 (请求最终的handle方法))
端点是如何调用的:
1.springmvc请求一般都是进行DispatcherServlet.java进行寻找对应的handlerMapping 入口方法doDispatch
2.获取对应的handlerMapping类mappedHandler = getHandler(processedRequest);
handlerMapping主要是以下几个类
3.调用DispatcherServlet的getHandlerAdapter获得对应的HandlerAdapter适配器
此时有4个HandlerAdapter:获取的是(RequestMappingHandlerAdapterr)
4.RequestMappingHandlerAdapter调用对应的handle方法
调用RequestMappingHandlerAdapter的handleInternal的方法
5.调用继承类RequestMappingHandlerAdapter类实现类的handleInternal方法–>invokeHandlerMethod()
调用invokeHandlerMethod方法中的ServletInvocableHandlerMethod的invokeAndHandle方法
6.调用ServletInvocableHandlerMethod父类的doInvoke方法
7.调用method的反射方法,调用对应的方法AbstractWebMVCEndpointHandlerMapping的内部类的operationHandler.handle方法
调用对应方法,该方法调用对应的handler方法
调用AbstractWebMVCEndpointHandlerMapping的handler方法,通过反射访问info方法
通过反射实现infoEndpoint类的info方法
8.调用infoEndpoint的info方法获取系统信息
端点信息的访问
springBoot–health
获取对应系统磁盘信息
DiskSpaceHealthIndicator
默认校验值是10M,配置文件是可以配置的,所以对比的是配置文件的
还可以针对数据库相关的获取对应检查
springBoot–info
获取info节点
获取对应信息
初始化对应的info
git相关信息
获取项目信息