(原)

关于springboot中多环境配置问题

1、在application.properties文件中通过

spring.profiles.active=...

选择系统所要加载的配置文件,这里的...会在application-{...}.properties文件中查找。

如:

有这些文件,如果application.properties文件中

spring.profiles.active=aaa

那么系统加载文件时,只会读取application.properties和application-aaa.properties中的内容,不会读取application-bbb.properties中的内容。

参考:

通过${}可以读取到属性文件中之前的引用值。java程序可以获取app.name可以得到MyApp,获取app.description可以得到 MyApp is a Spring Boot application。

参考文档

2、在application.properties文件中通过@..@读取maven属性

如application.properties中:

java.version = @java.version@

在pom.xml中有

当通过maven的package打完包以后,会发现,application.properties文件中已经变成:

那么这里的${}和@@这种分割符是怎么定义的?

在springboot通过IDE自动生成的pom文件中,会有一个parent

进入到spring-boot-starter-parent的pom文件中,会看到

参考:

最后一点:默认的配置文件接收spring风格的${}占位符,过滤maven中的占位符改为了@..@,并且能通过maven属性文件中的resource.delimiter去修改这个占位符。

参考文档

参考文档

如果你的springboot的pom文件中的<parent></parent>中没有spring-boot-starter-parent,那么你需要添加如上如官网中给出的resource 和 plugin。

3、springboot中的多环境配置

maven中添加如下:

profiles中有二个profile标签,意味着有二种配置可选,如上图可看到通过activeByDefault可以默认激活id为bbb的配置,那么此时id为bbb的profile标签中的properties中的所有属性都是生效的,此时可以通过在application.properties中配置

spring.profiles.active=@profiles.active@

当通过maven打包时,mvn package -Paaa打包命令,可以将id为aaa的profile中的属性激活,此时spring.profiles.active的值就会变成aaa,application-aaa.properties属性文件就能被读取,如果通过mvn package命令正常的打包,因为默认id为bbb的属性是被激活的,spring.profiles.active的值就会变成bbb,那么application-bbb.properties文件就能被读取。

												

sprintboot 中占位符及多环境配置的更多相关文章

  1. Spring中手动增加配置文件中占位符引用的变量

    在项目中遇到一个这样的需求,项目的配置文件由外部传入,这时spring配置文件那些占位符变量该如何取值呢? 解决这个问题的做法有几种,我想到的大概有以下三种: 1.通过系统属性来实现,把外部传入的配置 ...

  2. Hql中占位符(转)

    在新的Hibernate 4版本中,对于Hql有一点点改变,如果你还是按照以前的方式去编写HQL并且用了以下占位符的方式,就会得到一个警告. 参考资料:https://hibernate.atlass ...

  3. Jfinal数据库操作语句中占位符的使用

    占位符的优点: 1.增加SQL代码可读性 2.占位符可以预先编译,提高执行效率 3.防止SQL注入 4.用占位符的目的是绑定变量,这样可以减少数据SQL的硬解析,所以执行效率会提高不少 假设要将id从 ...

  4. 在scanf函数中占位符使用错误而产生的一些错误

    出现的问题 在做编程题的的时候,遇到了一个很奇怪的错误,出问题的代码如下: 1 #include <cstdio> 2 using namespace std; 3 4 int main( ...

  5. jpa的@Query中"?"占位符的使用小坑

    今天使用@Query自定义查询语句,出现了一个错误: java.lang.IllegalArgumentException: Parameter with that position [1] did ...

  6. Java中的 JDK下载和环境配置(方式一)

    第一步:需要安装JDK. JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151 ...

  7. SeetaFace教程(一) 在 VS 中的编译安装和环境配置

    SeetaFace开源库由FaceDetection.FaceAlignment.FaceIdentification三部分组成.FaceDetection是在一副图片中检测出人脸区域,以一个方形区域 ...

  8. 虚拟机中CentOS 7下PHP环境配置

    为了简单起见,虚拟机网卡设置为桥接模式 1.yum install  httpd php 2.yum install mariadb 3.启动mariadb systemctl start maria ...

  9. 关于Mobx中装饰器语法的环境配置

    1.弹出项目配置 npm run eject 此处注意,若弹出项目配置失败,请先执行以下两行代码(若没有安装git则请跳过,本人是在安装git的情况下解决问题的) 1.git add . 2.git ...

随机推荐

  1. grep 及正则表达式

    grpe 及正则表达式 文本查找的需要:grep,egrep,fgrepgrep: 根据模式,搜索文本,并将符合模式的文本行显示出来.Pattern : 文本字符以及正则表达式的元字符组合而成的匹配条 ...

  2. Windows Server 2016-DHCP增删功能介绍

    动态主机配置协议(DHCP)是一种客户端/服务器协议,可自动为Internet协议(IP)主机提供其IP地址和其他相关配置信息,例如子网掩码和默认网关.RFC 2131和2132将DHCP定义为基于引 ...

  3. pytest框架之命令行参数2

    前言 上篇博客说到命令行执行测试用例的部分参数如何使用?今天将继续更新其他一些命令选项的使用,和pytest收集测试用例的规则! pytest执行用例命令行参数 --collect-only:罗列出所 ...

  4. python从学渣到学沫的半月天

    今天又要引进一个新的知识点了,就是模块,可以直接引用的一个东西,从实用性来说很强大,不过还是需要记住模块的类型啊,如何应用还是需要学习和了解的.其中模块是分三种的,一种内置模块python内部提供的功 ...

  5. 使用Identity Server 4建立Authorization Server (4)

    预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二 ...

  6. Java中食之无味弃之可惜的数组

    在Java的泛型出现之前,只有数组可以用来存储指定类型的对象:在自动装箱机制出现之前,只有数组可以用来存储基本数据类型:也就是说,在泛型和自动装箱机制出现之前,数组在Java当中的分量举足轻重. 况且 ...

  7. 『练手』005 Laura.SqlForever历史遗留 的 架构思想缺陷

    005 Laura.SqlForever历史遗留 的 架构思想缺陷 我们 比较一下 Laura.WinFramework 和 Laura.XtraFramework 的差异: Laura.WinFra ...

  8. SLAM+语音机器人DIY系列:(一)Linux基础——1.Linux简介

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  9. Excel自动换行、Export2Excel 自动换行

    1需求:导出excel后自动换行显示. 2插件:Export2Excel 3.测试 listToExcel() { import('@/vendor/Export2Excel').then(excel ...

  10. HTML文档命名规则

    HTML文档是展示Web前段开发工程师成果的最好表示方式,为了便于文档规范化管理,在编写HTML文档时,必须遵循HTML文件命名规则. HTML文档命名规则如下: (1)文档的扩展名为htm或者htm ...