1、首先pom.xml配置文件要在与<dependencies>标签同级配置<profiles> 标签的配置

<profiles><!--测试环境--><profile><id>test</id><properties><env>test</env></properties></profile><!--生产环境--><profile><id>product</id><properties><env>product</env></properties></profile>
</profiles>

增加了profiles配置,在idea中就会出现相应的profile

2、 配置需要替换的环境的配置文件

maven执行package命令解析配置文件中的占位符进行替换
文档,配置需要替换的环境的配置文件

<filters><!-- 需要读取的配置文件来源 --><filter>src/main/filters/configfile_${env}.properties</filter>
</filters>
<resources><resource><directory>src/main/resources</directory><includes><!-- 需要替换占位符的配置文件--><include>spring-mvc.xml</include><include>config/configfile.properties</include></includes><filtering>true</filtering></resource>
</resources>

我的文件目录为 src/main/filter目录下为需要根据环境选取的配置文件,根据profile环境的不同,分为 configfile_test.properties文件和 configfile_product.properties 文件,而我需要替换占位符的配置文件为 src/main/resources 目录下的spring-mvc.xmlconfig/configfile.properties

#configfile_test.properties文件config.id=test_1
config.name=test_domino#configfile_product.properties 文件config.id=product_1
config.name=product_domino#configfile.properties文件config_id=${config.id}
config_name=${config.name}#spring-mvc.xml文件<bean id="configBean" class="cn.shutdown.web.bean.ConfigBean"><property name="id" value="${config.id}"/><property name="name" value="${config.name}"/>
</bean>

3、根据profile启动项目

如果我勾选 test profile 然后使用jetty run 启动项目


读取的配置就是 configfile_test.properties文件中的配置

target中被编译的配置文件 spring-mvc.xmlconfigfile.properties文件中的占位符的值也被替换为configfile_test.properties配置文件的值

如果使用product profile进行编译和启动,配置文件中的${} 点位符也会相应的被替换为 configfile_product.properties 中的配置的值

至此,根据环境读取相应环境的配置文件的功能就实现了

demo的源码地址

https://gitee.com/j__domino/springboot-demo/tree/master/spring-config-demo/spring-profile-env-demo

spring项目使用maven配置多环境动态读取配置值相关推荐

  1. mybatis手动切换数据库_在Spring项目中使用 Mybatis 如何实现动态切换数据源

    在Spring项目中使用 Mybatis 如何实现动态切换数据源 发布时间:2020-11-17 16:20:11 来源:亿速云 阅读:108 作者:Leah 这篇文章将为大家详细讲解有关在Sprin ...

  2. linux离线配置qt环境,Linux下配置QT环境

    一.下载Qt源码包到本机,然后解压缩 #tar zxvf qt-x11-opensource-src-4.3.2.tar.gz -C /usr/local //将qt-x11-opensource-s ...

  3. ENSP配置 实例九 动态Nat配置

    ENSP配置 实例九 动态Nat配置 sy [Huawei]sy R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 ...

  4. maven的Windows环境下安装配置

    前言: maven是基于项目对象模型(pom),可以通过一小段描述信息来管理项目的构建,报告和文档的软件管理项目工具. 准备工作 java开发环境(JDK) 目前使用的jdk1.8的版本,jdk的安装 ...

  5. Maven 系列 1:Maven 安装与环境变量的配置完整步骤及需要注意的问题(以 jdk1.8、Maven 3.6.2 和 win10 为例,附下载地址)

    文章目录 前言 一.下载安装 Maven 1.1.官网下载 Maven 安装包 1.2.Maven 安装目录进行分析说明 1.3.注意 Maven 安装的系统要求 二.检查本地 Java 环境变量的配 ...

  6. 基于 Nacos 配置中心的动态日志配置方案

    log4j2 日志的级别不能落 SpringBoot 动态设置 logback 日志的级别 上面这两篇文章只是从技术角度说了,可以实现动态日志配置.但是并没有形成适用生产环境使用的方案.今天介绍一种基 ...

  7. linux如何配置java环境_linux虚拟机配置java环境

    java不用做任何改动就可以部署到linux系统,java编译成*.class文件只需要虚拟机的支持,你只要在linux环境下装一个jdk就OK了,然后配置一下环境变量.然后java的class文件或 ...

  8. 用eclipse配置php环境,eclipse怎么配置php环境

    详细内容 PHP有非常多相当不错的开发工具,如Zend Studio.NetBeans.phpdesigner等,但对于习惯Java编程的程序员们来说,下面介绍最经常使用的还要属Eclipse. 推荐 ...

  9. atom配置python环境_Win10如何配置Python的环境变量

    相信有许多人遇到过这样的一个问题,为什么电脑里安装了python,可是win10终端里输入"python"却显示不是内部命令无法.其实是系统的环境变量没有配置所以输入"p ...

  10. python环境变量配置_Python环境变量的配置

    1.右击我的电脑,点击属性,选择高级系统设置 2.选择环境变量 3.第一步:选择系统变量中:path:第二步:选择编辑 4.找到python的存储路径,并复制 5.将路径粘贴在此处 6.点击" ...

最新文章

  1. 更新版PowerBI发布了-- Power BI Report Server Update – March 2018
  2. 云炬60s看世界20211122
  3. .NET下安装卸载WindowsService批处理脚本
  4. MS CRM 2011——让活动实体在活动菜单中显示
  5. 5分钟让你了解 ZooKeeper 的功能和原理
  6. 为什么“支付宝里没钱了”和“微信里没钱了”给人两种不同的感觉
  7. 动态箭头gif图标_别以为只有专业人士才能做出酷炫的#动态跑分图#
  8. python123平台作业答案循环结构棋盘放米_python练习集100题(1-20)
  9. mysql 基本命令整理(1)
  10. 玩转基金(1)基金基础
  11. cocos2d-x由Jni实现Java与C++打电话给对方
  12. 计算机辅助汽车人机工程未来挑战,计算机辅助人机工程设计的虚拟人分析-机械制造及其自动化专业论文.docx...
  13. Java8新特性之日期和时间
  14. Android设置沉浸式
  15. java怎么使用sni,启用SNI扩展的SSL握手 - 服务器上的证书选择
  16. Linux HaProxy安装/启动/简单配置教程
  17. 优秀孩子的父母都有这五个特点
  18. 华为防火墙(usg5500)区域间实验
  19. 关于COVID-19新型冠状病毒,最新提出的人工智能在诊疗中的应用
  20. go 日志库zap的使用

热门文章

  1. 【浅说】堆(heap)和栈(stack)区别
  2. wamp修改端口localhost
  3. 设计模式 - (3)抽象工厂模式(创建型)
  4. 嘿嘿。今天学习了AJAX的几个方法
  5. web安全day48:session和cookie、同源策略的初步理解
  6. 对n个数进行排序(正序或者倒序)--06 年华科计算机保研机试真题
  7. NYOJ--24素数距离问题
  8. Oracle实践--PL/SQL表分区的基础
  9. Unreal Engine 4 C++ UCLASS构造函数易出错分析
  10. SimpleDateFormat关于时间类的一些常用处理