Spring Boot 2.0.0.RELEASE中Actuator端点访问404问题求助
解决Spring Boot 2.0 Actuator端点404问题
这个问题我之前帮不少开发者排查过,核心原因是Spring Boot 2.x对Actuator组件做了大幅调整,和1.x版本的路径规则、默认配置完全不一样。给你一步步拆解解决:
1. 先修正端点访问路径
Spring Boot 2.x默认把Actuator端点的前缀从1.x的/application改成了/actuator,所以你之前的请求路径全部需要调整:
- 原
/application/mappings→ 现在访问/actuator/mappings - 原
/application/autoconfig→ 2.x里这个端点改名为/actuator/conditions,别再用旧名称了 - 原
/application/beans→ 现在/actuator/beans - 原
/application/configprops→ 现在/actuator/configprops
2. 配置端点暴露规则
2.x版本默认只对外暴露health和info两个基础端点,像mappings、beans这类进阶端点需要手动开启暴露。你需要在配置文件里添加规则:
用application.properties配置:
# 按需暴露指定端点,多个用逗号分隔 management.endpoints.web.exposure.include=mappings,conditions,beans,configprops # 如果想一次性暴露所有端点,可以用* # management.endpoints.web.exposure.include=*
用application.yml配置:
management: endpoints: web: exposure: include: mappings,conditions,beans,configprops # include: '*' # 暴露所有端点的写法
3. 确认Actuator依赖是否正确
务必检查你的pom.xml里的依赖是Spring Boot 2.x的正确版本:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <!-- 版本号可以省略,因为Spring Boot父pom会自动管理 --> <version>2.0.0.RELEASE</version> </dependency>
注意:旧版本的artifactId是spring-boot-actuator,2.x已经统一改为spring-boot-starter-actuator,用错依赖会直接导致端点无法加载。
4. (可选)恢复/application前缀
如果你习惯用原来的/application作为前缀,可以通过配置修改端点的基础路径:
application.properties:
management.endpoints.web.base-path=/application
application.yml:
management: endpoints: web: base-path: /application
配置后,你就能继续用/application/mappings这类旧路径访问了。
5. 排查Spring Security拦截(如果项目用了安全框架)
如果你的项目集成了Spring Security,它可能会默认拦截Actuator端点的请求。需要在Security配置类里添加放行规则:
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() // 允许所有请求访问Actuator端点,也可以根据需求配置权限校验 .antMatchers("/actuator/**").permitAll() .anyRequest().authenticated(); } }
按照上面的步骤调整后,你的Actuator端点应该就能正常访问了。
内容的提问来源于stack exchange,提问作者Mark Smith




