Spring Boot升级至2.5后actuator端点访问返回404问题求助
解决思路
- 修正配置前缀与暴露规则
你当前使用的application前缀不属于Actuator的配置范畴,Spring Boot Actuator所有配置的统一前缀为management。同时Spring Boot 2.5版本对端点暴露的默认规则更严格,默认仅对外暴露health端点,即便单个端点配置为开启,也需要显式加入web暴露列表,正确配置如下:
management: endpoints: web: exposure: include: info,health # 如需暴露所有已开启的端点可填写* endpoint: info: enabled: true
之所以2.3版本可以正常运行,大概率是升级过程中原有正确的management前缀配置被误修改为了application前缀,且2.3版本默认的端点暴露规则更宽松。
检查测试类注解配置
如果你的测试类使用@WebMvcTest注解,该注解默认仅扫描项目内的自定义Controller层组件,不会注册Actuator的内置端点,需要替换为@SpringBootTest+@AutoConfigureMockMvc组合注解,才能完整加载Actuator的自动配置。核对端点请求路径
检查是否存在management.endpoints.web.base-path自定义配置,该配置会修改Actuator端点的根路径,默认值为/actuator,如果自定义为其他值,需要同步修改测试代码中的请求路径。排查路径拦截规则
虽然返回码是404而非权限异常,仍可确认Spring Security等权限框架是否配置了/actuator/**路径的隐藏/拦截规则,导致请求无法命中端点。
内容的提问来源于stack exchange,提问作者HellishHeat
相关产品推荐
相关产品推荐

