(原)

关于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. ORM(四)字段参数

    null:如果null=True,则该字段在数据库中的值可以为NULL,默认null=False. blank:如果blank=True,前端form表单可以空,注意,这与NULL不同.NULL纯粹与 ...

  2. Tomcat更新方法

    tomcat更新方法最简单的就是上官网下载最新版的压缩包,然后用新版本的 lib 文件替换掉旧版本的 lib 文件 具体方法(偷懒做个搬运工):https://jingyan.baidu.com/ar ...

  3. css+js调整当前界面背景音量

    展示效果 html代码: <div> <audio id="audio" controls src="https://dbl.5518pay.com/r ...

  4. Python用Django写restful api接口

    用Python如何写一个接口呢,首先得要有数据,可以用我们在网站上爬的数据,在上一篇文章中写了如何用Python爬虫,有兴趣的可以看看: https://www.cnblogs.com/sixrain ...

  5. Jason Wang:记录自己所想所得(第一次作业)

    这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 我在这个课程的目标是 学会现代软件工程的思想,运用到实际中去 这个作业在哪个具体方面帮助我实现目标 ...

  6. Spring Boot 2.x 系列教程:WebFlux 系列教程大纲(一)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! WebFlux 系列教程大纲 一.背景 大家都知道,Sprin ...

  7. VC6.0打开或添加工程时崩溃的解决方法

    官方解决办法(英文):http://support.microsoft.com/kb/241396/en-us 网友解决(中文):http://blog.163.com/wjatnx@yeah/blo ...

  8. 简单介绍shell编程四剑客之awk

    概要:分别的作用 grep:文本过滤(模式:pattern)工具,grep,egrep,fgrep,擅长过滤. sed:stream editor 文本编辑工具:(流编辑器),擅长取行.替换. awk ...

  9. DS控件库 DS开放式下拉列表

    在一些场合中,需要使用组合式下拉列表控件,比如带treeivew的combobox,但是代码较多,使用不便.为此,本人制作了一个超级易用的DS开放式下拉列表. 以下演示使用过程. Private Su ...

  10. Spring入门(一):创建Spring项目

    本篇博客作为Spring入门系列的第一篇博客,不会讲解什么是Spring以及Spring的发展史这些太理论的东西,主要讲解下如何使用IntelliJ IDEA创建第一个Spring项目以及通过一个示例 ...