- 作者简介
- 内容提要
- 关于本书
- 路线图
- 代码规范与下载
- 作者在线
- 封面插图简介
- 前言
- 译者序
- 致谢
- 第1部分 Spring 的核心
- 第1章 Spring 之旅
- 第2章 装配 Bean
- 第3章 高级装配
- 第4章 面向切面的 Spring
- 第2部分 Web 中的 Spring
- 第5章 构建 Spring Web 应用程序
- 第6章 渲染 Web 视图
- 第7章 Spring MVC 的高级技术
- 第8章 使用 Spring Web Flow
- 第9章 保护 Web 应用
- 第3部分 后端中的 Spring
- 第10章 通过 Spring 和 JDBC 征服数据库
- 第11章 使用对象-关系映射持久化数据
- 第12章 使用 NoSQL 数据库
- 第13章 缓存数据
- 第14章 保护方法应用
- 第4部分 Spring 集成
- 第15章 使用远程服务
- 第16章 使用 Spring MVC 创建 REST API
- 第17章 Spring消息
- 第18章 使用 WebSocket 和 STOMP 实现消息功能
- 第19章 使用 Spring 发送 Email
- 第20章 使用 JMX 管理 Spring Bean
- 第21章 借助 Spring Boot 简化 Spring 开发
21.4 通过 Actuator 获取了解应用内部状况
Spring Boot Actuator所完成的主要功能就是为基于Spring Boot的应用添加多个有用的管理端点。这些端点包括以下几个内容。
GET /autoconfig:描述了Spring Boot在使用自动配置的时候,所做出的决策;
GET /beans:列出运行应用所配置的bean;
GET /configprops:列出应用中能够用来配置bean的所有属性及其当前的值;
GET /dump:列出应用的线程,包括每个线程的栈跟踪信息;
GET /env:列出应用上下文中所有可用的环境和系统属性变量;
GET /env/{name}:展现某个特定环境变量和属性变量的值;
GET /health:展现当前应用的健康状况;
GET /info:展现应用特定的信息;
GET /metrics:列出应用相关的指标,包括请求特定端点的运行次数;
GET /metrics/{name}:展现应用特定指标项的指标状况;
POST /shutdown:强制关闭应用;
GET /trace:列出应用最近请求相关的元数据,包括请求和响应头。
为了启用Actuator,我们只需将Actuator Starter依赖添加到项目中即可。如果你使用Groovy编写应用并通过Spring Boot CLI来运行,那么可以通过@Grab注解来添加Actuator Starter,如下所示:
如果使用Gradle构建Java应用的话,那么在build.gradle的dependencies代码块中需要添加如下的依赖:
或者,在项目的Maven pom.xml文件中,我们可以添加如下的<dependency>:
添加完Spring Boot Actuator之后,我们可以重新构建并启动应用,然后打开浏览器访问以上所述的端点来获取更多信息。例如,如果想要查看Spring应用上下文中所有的bean,那么可以访问http://localhost:8080/beans。如果使用curl命令行工具的话,所得到的结果将会如下所示(为了便于阅读,进行了格式化和删减):
从这里,我们可以看到有一个ID为contactController的bean,它依赖于名为contactRepository的bean,而contactRepository又依赖于jdbcTemplatebean。
因为我对输出进行了删减,所以有很多的bean没有展现出来,它们都包含在“/beans”端点所产生的JSON中。对于自动装配和自动配置所形成的神秘结果,这里提供了一种了解内部实现的手段。
另外一个端点也能帮助我们了解Spring Boot自动配置的内部情况,这就是“/autoconfig”。这个端点所返回的JSON描述了Spring Boot在自动配置bean的时候所做出的决策。例如,当针对Contacts应用调用“/autoconfig”端点时,如下展现了删减后(并进行了格式化)的JSON结果:
我们可以看到,这个报告包含了两部分:一部分是没有匹配上的(negative matches),另一部分是匹配上的(positive matches)。在没有匹配的部分中,表明没有使用AOP和自动配置,因为在类路径中没有找到所需的类。在匹配上的部分中,我们可以看到,因为在类路径下找到了SpringTemplateEngine,Thymeleaf自动配置将会发挥作用。同时还可以看到,除非明确声明了默认的模板解析器、视图解析器以及模板bean否则的话,这些bean会进行自动配置。另外,只有在类路径中能够找到Servlet类,才会自动配置默认的视图解析器。
“/beans”和“/autoconfig”端点只是Spring Boot Actuator所提供的观察应用内部状况的两个样例。在本章中,我们没有足够的篇幅详细讨论每个端点,但是我建议你自行尝试这些端点,以便掌握Actuator都提供了哪些功能来帮助我们了解应用的内部状况。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论