关键词:
我们在开发项目的时候,经常都会使用到多环境配置。springboot提供了非常方便的profile来做多环境配置。以下内容我们将使用2个环境配置:开发环境dev、生产环境prod。如果需要更多的环境配置依样画葫芦新增就好。
首先springboot的支持properties和yml两种形式的配置文件。我个人比较喜欢yml这种形式。相比properties有更好的层级关系,以及少些了很多内容,看起来也比较简洁。这里我将使用yml来配置。
我们在resources目录下新建springboot的配置文件application.yml,内容暂时放空。因为我们要建开发和生产2个环境的配置,所以我们在resources目录下再新建application-dev.yml和application-prod.yml两个文件。结构如下:
说明:
总结就是:x环境的配置就放到application-x.yml文件中去。
如果现在你直接启动的话,你会发现,springboot还是引用的公共环境的配置,我们新增的dev和prod配置并没有生效,这是为什么呢?因为你没有告诉springboot要使用哪个环境的配置,所以springboot自己也懵逼,于是他只加载了application.yml的配置文件。
为了解决这个问题。我们需要在启动的时候对需要加载的环境进行配置,这里有2种方法。
1、启动的时候增加–spring.profiles.active=dev参数指定使用dev环境。
命令行jar包执行
java -jar demo.jar --spring.profiles.active=dev
idea开发调试如红框所示
2、配置文件中指定
在application.yml中增加如下配置,指定使用dev环境配置。
spring:
profiles:
active: dev
到这里我们已经完成了springboot提供的profile实现多环境的配置,是不是非常方便。但是我还是觉得有点麻烦,考虑到maven也有一个profile配置,而且idea针对maven的配置提供可一个窗口用来切换,于是我就想把两个结合起来。
只需要勾选相应的选项即可切换到对应的环境。如何实现呢?我们只需要在项目的pom文件中增加。
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>dev</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
然后对application.yml进行简单的修改。
spring:
profiles:
active: @env@
即可实现我们要的效果。
注:maven切换环境之后需要使用maven编译一下。
idea中maven的选项卡的lifecycle点一下compile就好了。
说一下原理:我们在maven的profile中指定了2个环境。一样是dev和prod。其中dev环境是默认激活的环境。并且针对不同的环境都指定了一个env的变量。dev下env变量值是dev,prod下env变量值是prod。
在application.yml中我们使用@env@代替了原来dev的位置。意思是maven在编译的时候,会将@env@替换成maven中profile配置的env变量的值。这也就是为啥切换环境的时候需要使用maven对项目进行一下编译的原因。
这样我们就实现了springboot的profile和maven的profile的结合,完成了项目多环境的配置。大家可以自己尝试一下。
springboot环境配置(profile)切换
SpringBoot集成教程SpringBoot介绍SpringBoot开发环境搭建(Eclipse)SpringBootHelloWorld(restful接口)例子springboot连接Mysqlspringboot配置druid连接池连接mysqlspringboot集成mybatis(1)springboot集成mybatis(2)–使用pagehelper实现分页springboot集 查看详情
将 Java Profiler (VisualVM) 与 Oracle 应用服务器 (OAS) 结合使用
】将JavaProfiler(VisualVM)与Oracle应用服务器(OAS)结合使用【英文标题】:UsingJavaProfiler(VisualVM)withOracleApplicationServer(OAS)【发布时间】:2013-07-2207:37:06【问题描述】:我需要优化JSF应用程序。它在localhostOracleApplicationServer10g(OAS)上运行。... 查看详情
springboot配置多个yml文件(代码片段)
springboot配置多个yml文件参考springboot配置多个yml文件maven(三)最详细的profile的使用实战为生产和开发分别配置一个profile。每个都有多个文件。profile每个profile都应该有唯一的id,可以同时激活多个profile,每个profile提供一些配置... 查看详情
springboot属性配置和使用(代码片段)
SpringBoot属性配置和使用SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简单说就... 查看详情
我们公司使用了6年的springboot项目部署方案!打包+shell脚本部署详解,稳的一批!...
本篇和大家分享的是SpringBoot打包并结合Shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作;profiles指定不同环境的配置maven-assembly-plugin打发布压缩包分享shenniu_publish.sh程序启动工具linux上使用shenni... 查看详情
springboot多环境配置和切换
...往需要用到开发,测试,生产等环境,为了方便环境的切换,springboot提供了profile功能.profile是spring对不同坏境提供不同配置功能的支持,可以通过激活,指定参数等方式快速切换.一共有三种方式,各位可以根据项目使用最适合自己的那一... 查看详情
springboot-使用yml文件配置多环境
两种配置方式1:在一个yml文件中,2:在多个yml文件中1一个yml文件application.ymlspring: profiles: active:dev---#开发环境配置spring: profiles:devserver: port:1000---#测试环境配置spring: profiles:stgserver:  查看详情
我们公司使用了6年的springboot项目部署方案!打包+shell脚本部署详解,稳的一批!...
本篇和大家分享的是SpringBoot打包并结合Shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作;profiles指定不同环境的配置maven-assembly-plugin打发布压缩包分享shenniu_publish.sh程序启动工具linux上使用shenni... 查看详情
@async异步注解与springboot结合使用
当你在service层需要启动异步线程去执行某些分支任务,又不希望显式使用Thread等线程相关类,只想专注于实现业务逻辑代码开发,可以使用@Async异步注解。1、使用@Async异步注解Controller层方法://批量插入用户@RequestMapping("/user/ad... 查看详情
结合springboot使用jdbc框架连接数据库
...ource利用DataSource创建出Jdbctemplate使用jdbctemplate完成sql操作springboot中快速配置jdbc连接新建一个配置包一个类一个数据库配置使用@Configuration定义配置类 这个类中可以有多个@Bean注解的方法这谢方法返回的对象都会被加载到容器... 查看详情
springboot下的dubbozookeeper结合使用
...个zookeeper就跟玩似的。这里记录一下遇到的一些坑!1、springboot引入dubbo的配置文件网上搜索了一下,大概的两种方式1、&nb 查看详情
springboot配置属性之spring.profiles.include
参考技术Aspring.profiles.active属性和其他属性一样都遵循相同的排列规则,最高的PropertySource获胜。也就是说,你可以在application.properties中指定生效的配置,然后使用命令行开关替换它们。有时,将特定的配置属性添加到生效的配... 查看详情
springboot结合啥前端框架
参考技术A可以配套springboot的前端模板thymeleaf,freemarker等,或者前后端分离,直接使用html手写 参考技术B1.SpringBoot是什么,解决哪些问题1)SpringBoot使编码变简单2)SpringBoot使配置变简单3)SpringBoot使部署变简单4)SpringBoot使监控变简单... 查看详情
第十四章springboot+profile(不同环境读取不同配置)
具体做法:不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中;prod环境下的配置配置在application-prod.properties中。在application.properties中指定使用哪一个文件1、application-dev.properties(dev环境下... 查看详情
springboot学习篇(-)
1、多环境配置 spring.profiles.active=local激活使用哪个环境配置 2、java-jarxx.jar--spring.profiles.active=test 查看详情
吊炸天,springboot的多环境配置一下搞明白了!
1、使用springboot的profile命名规则profile用于多环境的激活和配置,用来切换生产,测试,本地等多套不通环境的配置。如果每次去更改配置就非常麻烦,profile就是用来切换多环境配置的。在SpringBoot框架中,使... 查看详情
springboot2——指标监控actuator多环境切换profile和自定义starter(代码片段)
SpringBoot2——指标监控actuator、多环境切换Profile和自定义starter一、SpringBootActuator1.1SpringBootActuator的使用1.2Endpoints1.2.1端点暴露配置1.2.2重要端点解析二、多环境切换Profile2.1多配置文件2.2yaml的多文档块2.3配置文件的加载顺序三、自... 查看详情
springboot配置之profile多环境支持
Profile是spring对不同环境提供不同配置功能的支持,可以通过激活、指定参数等方式快速切换环境。多profile文件格式:-格式:appilication-[profile].properties application-dev.properties、appilication-prod.properties多profile文档块模式激活方式-... 查看详情