当前位置: 首页 > news >正文

Spring Boot项目中,如何在yml配置文件中读取maven pom.xml文件中的properties标签下的属性值

一、前言

在最近的项目开发过程中,有一个需求,需要在Spring Boot项目的yml配置文件中读取到mave的 pom.xml文件中的properties标签下的属性值,这个要怎么实现呢?

二、技术实践

  1. pom.xml文件中增加测试属性

    <properties><test.maven.pro>I am test pro.</test.maven.pro>
    </properties>
    
  2. 在yml配置文件中,使用@...@方式获取

maven:test:pro: @test.maven.pro@
  1. 测试属性读取
@SpringBootApplication
public class Main {public static void main(String[] args) {ConfigurableApplicationContext run = SpringApplication.run(Main.class, args);System.out.println("maven.test.pro=" + run.getEnvironment().getProperty("maven.test.pro"));}}
  1. 启动项目测试
20:13:59.064 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
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 82, column 10:pro: @test.maven.pro@^at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:445)at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:238)

运行项目时,可以看到,直接报错了,面对这个错误要怎么解决呢?

3. 问题解决

  1. 在pom.xml中新增如下配置:

    <build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources></build>
    
  2. 重新运行测试

在这里插入图片描述

可以看到,此时可以正常读取pom.xml文件中的属性了。

相关文章:

  • 27、matlab傅里叶变换:fft()函数
  • Git配置SSH-Key
  • win+mac通用的SpringBoot+H2数据库集成过程。
  • SwiftUI中ContentUnavailableView的使用(iOS 17、tvOS 17推出的新组件)
  • Verilog实现的数字钟
  • 测试记录3:WLS2运行Linux界面
  • 【golang学习之旅】Go中的cron定时任务
  • 扩展 Kafka 集群从三台节点到四台节点的过程
  • C++结合OpenCV进行图像处理与分类
  • 植物大战僵尸杂交版2.0.88最新版安装包
  • 爬虫之反爬思路与解决手段
  • 记录一次jlink连不上cpu的情况
  • 洛谷 CF1969A Two Friends 题解
  • RAG 高效应用指南 :Query 理解
  • Java1.8全套家政上门服务+springboot+ mysql +Thymeleaf 技术架构开发,家政APP系统在线派单,师傅入驻全套商业源码
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 230. Kth Smallest Element in a BST
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • JavaScript类型识别
  • Mocha测试初探
  • mockjs让前端开发独立于后端
  • PV统计优化设计
  • Python socket服务器端、客户端传送信息
  • ReactNative开发常用的三方模块
  • scala基础语法(二)
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue UI框架库开发介绍
  • 关于List、List?、ListObject的区别
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 利用jquery编写加法运算验证码
  • 说说动画卡顿的解决方案
  • 微信小程序设置上一页数据
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 06-01 点餐小程序前台界面搭建
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​​​【收录 Hello 算法】9.4 小结
  • ​configparser --- 配置文件解析器​
  • ()、[]、{}、(())、[[]]命令替换
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (八)Spring源码解析:Spring MVC
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)负载均衡,回话保持,cookie
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .net Application的目录
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .Net IE10 _doPostBack 未定义
  • .NET MVC第三章、三种传值方式
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET与 java通用的3DES加密解密方法
  • @FeignClient注解,fallback和fallbackFactory
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录