项目场景:

使用nacos 做配置中心,需要引入 bootstrap.yml 文件。结果 @spring.active@ 无法读取


问题描述:

以下是错误信息:

java.lang.IllegalStateException: Failed to load property source from location 'classpath:/bootstrap.yml'at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:538)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:497)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:465)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$6(ConfigFileApplicationListener.java:447)at java.lang.Iterable.forEach(Iterable.java:75)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$7(ConfigFileApplicationListener.java:446)at java.lang.Iterable.forEach(Iterable.java:75)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:443)at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:335)at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:214)at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:197)at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:184)at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:170)at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:358)at org.springframework.boot.SpringApplication.run(SpringApplication.java:317)at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:137)at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:212)at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:117)at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:74)at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:358)at org.springframework.boot.SpringApplication.run(SpringApplication.java:317)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243)at com.sankuai.inf.leaf.server.LeafServerApplication.main(LeafServerApplication.java:14)
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character '@' that cannot start any token. (Do not use @ for indentation)in 'reader', line 10, column 13:active: @spring.active@

原因分析:

原因不是 bootstrap.yml 加载不到,点击 target 查看编译后的目录中的bootstrap.yml文件 发现 active: @spring.active@ 此变量未替换 为当前环境的值。正常情况 idea 编译后 这里的 @spring.active@ 会被替换为  local  或 dev  (这里就是pom.xml 中配置的 profile值)

看到这里 感觉问题出在 两点: 1 idea编译问题  2 maven 编译插件问题  3 springboot依赖问题


解决方案:

1.对比其他项目以及编译设置 排除 idea编译问题

2.maven 插件对比  配置都一样

3.springboot 依赖发现 依赖也都一样,

最终排查下来的问题 是 当前项目 或者 当前项目的parent项目 pom.xml 必须 <parent> 节点依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version></parent>

这里还有一种使用  dependencyManagement  来 import 。就是这种方式 导致的问题。

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot-dependencies.version}</version><type>pom</type><scope>import</scope></dependency>

最后换成parent依赖就可以解决问题

@spring.active@无法读取相关推荐

  1. 解决Spring boot中读取属性配置文件出现中文乱码的问题

    解决Spring boot中读取属性配置文件出现中文乱码的问题 参考文章: (1)解决Spring boot中读取属性配置文件出现中文乱码的问题 (2)https://www.cnblogs.com/ ...

  2. k8s springboot 文件_Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程...

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Docker & Kubernetes相关文章:容器技术 之前介绍了Spring Cloud Config的用法,但 ...

  3. js获取唯一设备码_用js加Active 实现读取机器码,实现唯一计算机访问

    你的位置: 问答吧 -> PHP基础 -> 问题详情 用js加Active 实现读取机器码,实现唯一计算机访问 复制PHP内容到剪贴板 PHP代码: document.write (une ...

  4. Spring @Value:读取Properties配置文件

    非 @Value方式:基于ResourceLoader读取Properties配置文件 以下为通过Spring @Value:读取Properties配置文件 1.1 前提 测试属性文件:advanc ...

  5. Spring存储和读取对象 -- 2

    Spring存储和读取对象 -- 2 前言 一.存储 Bean 对象 1.1 前置工作:配置扫描路径 (重要) 1.2 添加注解存储 Bean 对象 1.2.1 五大类注解 Bean 命名规则 1.2 ...

  6. spring+mybatis整合读取不了配置文件

    报错如下: java.sql.SQLException: unkow jdbc driver : ${jdbc.url} 其余错误就不贴了,主要原因是没有读取到配置文件 读取配置文件代码: <b ...

  7. struts2 Action 通过Spring管理, 并通过Spring的方式读取配置文件

    2019独角兽企业重金招聘Python工程师标准>>> 是这样的项目用的是Struts2 和Spring.我想在action层中测试下配置文件读取是否正常,Spring 版本有点低是 ...

  8. spring中@Value读取.properties配置文件中文乱码问题

    spring中读取.properties文件中文乱码原因是因为springmvc或spring配置文件加载配置文件时没有设定字符集编码问题导致的,其默认是会将.properties配置文件转码为uni ...

  9. Spring~用注解读取bean(属性注入、构造方法注入、set注入)

    文章目录 注解@Autowired. 属性注入 Setter注入 构造方法注入 三种注入的优缺点 注解@Resource. 1.属性注入 2.构造方法注入 @Resource与@Autowired区别 ...

最新文章

  1. 深入java虚拟机 第四版_深入理解Java虚拟机-常用vm参数分析
  2. laravel php跨域请求,Laravel 5.x设置跨域访问
  3. 数据科学行业的8个关键角色:职责与技能
  4. python线程池模块_Python并发编程之线程池/进程池--concurrent.futures模块
  5. Oracle数据库—— 事务处理与并发控制
  6. 八张图彻底了解JDK8 GC调优秘籍-附PDF下载
  7. struts2 零配置
  8. 定制mini2440 wince启动界面
  9. apache cxf java_Java-Apache CXF Web服务问题
  10. Linux下清空回收站
  11. .NET后台如何获取前台HMTL控件的值
  12. Google Earth Engine(GEE)——中国区域NOAA数据风速代码下载
  13. 捷径|Instagram去水印教程
  14. 【链世纪对话系列No.9】浪潮存储资深架构师叶毓睿:浪潮如何助力分布式云存储数据中心快速发展?
  15. EXCEL 连接 ORACLE 查询数据到表格 中文乱码 中文变成?
  16. 鸿蒙无法使用安卓应用市场,关于华为鸿蒙兼容安卓应用的原因与思考
  17. 首都经贸计算机考研怎么样,【考研心路历程】首都经贸大学考研的回忆与感悟...
  18. php递归函数return问题
  19. 你知道Java程序猿工资有多少吗?
  20. CCNA理论学习笔记整理(一)

热门文章

  1. PPT光效属于计算机几级,PPT高大上的秘密,只有一个字:光!
  2. 邮件系统日志查看方法
  3. Predicting Malicious Behavior: Tools and Techniques for Ensuring Global Security
  4. PLU Decomposition
  5. BeautifulSoup编写PYTHON爬虫案例-下载名著小说
  6. 暑假在富士康打工 50 天后,我决定奋发图强
  7. Java三种方式实现redis分布式锁
  8. JEECG微云快速开发平台相关资源下载
  9. Django入门基础教程。(一、Django的概要和安装)
  10. CSS设置字体为楷体