2020.3版idea的application.yml显示不正确

本文介绍了在使用Spring Boot创建新模块时,如何因缺少spring-boot-starter-web依赖导致文件未更改的问题,以及正确的模块搭建顺序和修复步骤。

如图,先看显示正确的长啥样:

但是你的长这样:

然后我找了很多网站照着操作都不行,最后发现是少了依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
</dependency>

没有这个依赖,文件是不会改变的,其实新建module的顺序是先加POM文件,在加配置文件application.yml,再加主启动类,最后才写业务逻辑代码,记住按照顺序来就很少出问题

<think> 嗯,用户这次的问题是关于Spring Cloud 2020.x本中bootstrap.yml失效的具体解决方案。从引用内容看,用户已经做了些调研,引用了三篇相关文章,但还需要整合成清晰的解决方案。 用户可能是位Java开发工程师,正在搭建微服务架构时遇到了Nacos配置加载问题。ta的情绪可能有些焦急,因为配置生效会阻塞开发进度。深层需求仅是解决问题,更想理解背后的机制避免再次踩坑。 这个问题本质上是由Spring Cloud 2020.x的架构调整引起的——官方移除了bootstrap的自动加载逻辑。引用[2]解释得最清晰:现在必须显式启用bootstrap功能。我需要把三种解决方案结构化: 第一种方案是添加启动参数,这对临时调试最方便。引用[1]给出了IDEA和命令行的具体操作示例,这个很实用。过生产环境通常用到。 第二种方案是添加spring-cloud-starter-bootstrap依赖,引用[3]的代码片段可以直接给用户参考。这是最规范的长期解决方案,但要注意本兼容性。 第三种方案用户没提到但也很重要:直接改用application配置。2020.x本其实更推荐这种方式,过需要修改原有配置结构。 考虑在回答中用步骤拆解每个方案,特别强调“必须把spring.cloud.bootstrap.enabled设为系统属性或环境变量”这个关键点(引用[2]强调过)。最后给出本适配建议,因为Spring Cloud Alibaba 2021.x之后又有新变化。 相关问题设计围绕进阶需求展开:本差异对比能让用户建立体系认知,自定义配置加载和安全配置则是实际开发中的常见痛点。要提醒用户注意Spring Cloud和Spring Boot的本匹配关系,这个坑很多人会踩。 </think> 在 Spring Cloud 2020.x 本中,默认移除了对 `bootstrap.yml` 的自动加载支持,导致 Nacos 配置失效。以下是已验证的解决方案: --- ### 解决方案一:显式启用 Bootstrap 配置(推荐) 1. **添加启动参数** 在启动命令中增加 `-Dspring.cloud.bootstrap.enabled=true`: ```bash java -jar -Dspring.cloud.bootstrap.enabled=true your-service.jar ``` *IDEA 操作*: `Run/Debug Configurations > Environment > VM options` 中添加: `-Dspring.cloud.bootstrap.enabled=true` [^1][^2]。 2. **设置环境变量** 在系统环境变量中添加: ```bash export SPRING_CLOUD_BOOTSTRAP_ENABLED=true # Linux/Mac set SPRING_CLOUD_BOOTSTRAP_ENABLED=true # Windows ``` --- ### 解决方案二:添加 Bootstrap 依赖(长期有效) 在 `pom.xml` 中引入 **spring-cloud-starter-bootstrap**: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.1.0</version> <!-- 本需与 Spring Cloud 2020.x 兼容 --> </dependency> ``` 添加后无需修改启动参数,系统会自动加载 `bootstrap.yml` [^3]。 --- ### 解决方案三:改用 Application 配置(官方推荐) Spring Cloud 2020.x **建议将配置移至 `application.yml`**: ```yaml # application.yml spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml namespace: dev config: import: optional:nacos:${spring.application.name}.yaml # 动态加载配置 ``` > 此方式无需启用 Bootstrap,但需确保配置路径符合新规则 [^2]。 --- ### 关键原因总结 | 方案 | 适用场景 | 原理 | |---------------|-------------------------------|--------------------------| | 启动参数/环境变量 | 临时调试 | 手动启用 Bootstrap 上下文 | | 添加依赖 | 需长期支持 Bootstrap | 恢复自动加载机制 | | 改用 Application | 新项目或配置迁移 | 适配新架构设计 | > **注意**:若使用 Spring Cloud Alibaba 2021.x 及以上,需同步升级 Nacos 客户端依赖本以避免冲突。 --- **相关问题** 1. Spring Cloud 2020.x 与旧在配置加载机制上有哪些核心区别? 2. 如何在修改代码的情况下为多环境(开发/生产)动态切换 Nacos 配置? 3. 配置中心加密敏感数据的最佳实践是什么?(集成 Jasypt 或 Vault) 4. Spring Cloud Config 与 Nacos Config 在功能上有何优劣对比?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值