spring-boot-starter-actuator 2.0.3.RELEASE 使用-配置文件生效

本文深入探讨Spring Boot中Actuator组件的配置问题,解决仅暴露health和info端点的常见难题,提供有效的配置示例,帮助开发者正确配置并充分利用Actuator的功能。

写在前面的话

spring-boot 组件更新比较频繁,一般的项目组很少会同步更新版本,往往遇到问题解决问题,这样固然降低人员成本,但同时增加的长期的项目风险,加上不尽人意的搜索结果,往往是大半天时间在解决一个小问题,最后不得不冒着兼容风险通过修改版本来实现。

spring-boot-starter-actuator 配置问题

启动日志显示 Actuator只暴露health和info

o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path ‘/actuator’
s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped “{[/actuator/health],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}” onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMappingOperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String,java.lang.String>)s.b.a.e.w.s.WebMvcEndpointHandlerMapping:Mapped"[/actuator/info],methods=[GET],produces=[application/vnd.spring−boot.actuator.v2+json∣∣application/json]"ontopublicjava.lang.Objectorg.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMappingOperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>) s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/info],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMappingOperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String,java.lang.String>)s.b.a.e.w.s.WebMvcEndpointHandlerMapping:Mapped"[/actuator/info],methods=[GET],produces=[application/vnd.springboot.actuator.v2+jsonapplication/json]"ontopublicjava.lang.Objectorg.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMappingOperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>)
s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped “{[/actuator],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}” onto protected java.util.Map<java.lang.String, java.util.Map<java.lang.String, org.springframework.boot.actuate.endpoint.web.Link>> org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.links(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

没有文档上介绍的beans …

直觉应该是配置文件问题,网上资料一大堆
梳理下三种解决思路:

1.没有spring-boot-starter-security

按道理两个组件各司其职没有关系,保险起见我还是实践了一下,确实没有关系,后期也需要控制暴露的地址权限

2.配置文件错误

网上资料大部分明确了配置原因,但没有给我正确的配置,或许是版本更新问题
试过;
此配置不生效

management:
  health:
    mail:
      enabled: false
  endpoints:
    web:
      base-path: /manage
      exposure:
        include: *

或者
此配置不生效

management:
  health:
    mail:
      enabled: false
  endpoints:
    web:
      base-path: /manage
      exposure:
        include: "*"

常见的解决配置,有些properties形式
现在怎么办,找正确的配置,官方文档里搜一波,无果
继续看配置文件:
idea 在你写配置文件的时候有提示,包含参数,

在这里插入图片描述

看到了[“health’] 试了一下成功
那么推测 [”*"] 会显示所有连接
在这里插入图片描述

效果如下:

在这里插入图片描述

生效的配置:

management:
  health:
    mail:
      enabled: false
  endpoints:
    web:
      base-path: /manage
      exposure:
        include: ["*"]

总结:
随着web技术栈的发展,以前servlet +html+mysql的架构逐步复杂到了
springcloud+mybaties+连接池+nosql
+前端框架+Redis 尽管每个组件都经过了充分实践,但仍然有很多细节不为人知,
在技术选型的时候,要控制技术栈的广度和深度,不是所有公司的项目组都能聚集一批高手,人员流动的风险往往忽视,相对于付费组件,这些技术的成本看似为0 但仍需要通过人员的投入去把控开源组件的风险,否则项目越大,遇到的问题越多。

参考[link]:https://blog.csdn.net/love3765/article/details/79291584
参考[link]:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/actuator-api/html/#beans-retrieving-response-structure
参考[link]https://blog.csdn.net/qq_20367813/article/details/79154981

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值