Eclipse下Spring Boot用application.yml改端口不生效但properties生效
Spring Boot application.yml端口配置不生效排查方案(Eclipse环境)
以下是该问题的常见触发原因:
- YAML语法错误
你当前写的port : 9001冒号后带空格的写法是合规的,但需要额外确认两点:port层级必须在server:下缩进2个空格,不能用Tab作为缩进符,Spring Boot默认YAML解析器不支持Tab缩进,Eclipse默认编辑YAML文件时按Tab会插入制表符,直接导致配置解析失败- 检查行是否存在不可见特殊字符、中文冒号,这类问题也会导致整段YAML配置不被识别
- 配置文件优先级冲突
Spring Boot默认配置文件优先级application.properties>application.yml,如果src/main/resources目录下还残留之前写了端口配置的application.properties文件,会直接覆盖yml的配置,导致yml配置不生效
同时要确认启动参数、环境变量、系统属性中没有指定服务端口,这类外置配置的优先级高于classpath下的配置文件,也会覆盖yml的端口配置 - Eclipse构建缓存问题
- 右键项目选择
Properties-> 进入Java Build Path,检查src/main/resources是否在Source目录列表中,且Excluded规则没有排除yml后缀的文件 - 按F5刷新项目,Maven项目执行
Maven -> Update Project,Gradle项目执行Gradle -> Refresh Gradle Project,之后执行Project -> Clean清理旧构建产物再重新启动项目,避免Eclipse缓存旧的编译内容导致新yml没有被打包加载
- 右键项目选择
- YAML解析依赖缺失
如果是自定义裁剪依赖的场景,可能缺少默认YAML解析依赖snakeyaml,正常spring-boot-starter会默认引入该依赖,你可以检查pom.xml或build.gradle中是否有该依赖的配置
内容的提问来源于stack exchange,提问作者Alex Danilov
相关产品推荐
相关产品推荐

