spring boot + maven使用profiles进行环境隔离
Spring Profile
Spring可使用Profile决定程序在不同环境下执行情况,包含配置、加载Bean、依赖等。
Spring的Profile一般项目包含:dev(开发), test(单元测试), qa(集成测试), prod(生产环境)。由spring.profiles.active属性决定启用的profile。
SpringBoot的配置文件默认为 application.properties(或yaml,此外仅以properties配置为说明)。不同Profile下的配置文件由application-{profile}.properties管理,同时独立的 Profile配置文件会覆盖默认文件下的属性。
Maven Profile
Maven同样也有Profile设置,可在构建过程中针对不同的Profile环境执行不同的操作,包含配置、依赖、行为等。
Maven的Profile由 pom.xml 的标签管理。每个Profile中可设置:id(唯一标识), properties(配置属性), activation(自动触发的逻辑条件), dependencies(依赖)等。
此文章不对Spring和Maven的Profile作过多说明,详细情况请自行查阅。
spring 多环境
maven增加profiles配置
<profiles><profile><id>dev</id><properties><!-- 环境标识,需要与配置文件的名称相对应 --><profile>deve</profile></properties><activation><!-- 默认环境 --><activeByDefault>true</activeByDefault></activation></profile><profile><id>test</id><properties><profile>test</profile></properties></profile><profile><id>prod</id><properties><profile>prod</profile></properties></profile></profiles>
application.properties
spring.profiles.active=@profile@
application-deve.properties
management.server.port=9001
management.endpoints.web.base-path=/monitormanagement.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=envmanagement.endpoint.health.show-details=alwaysmanagement.endpoint.beans.cache.time-to-live=10smanagement.endpoints.web.cors.allowed-origins=http://example.com
management.endpoints.web.cors.allowed-methods=GET,POST
- application.properties中定义激活的环境
- @profile@与maven中定义的profile保持一致
打包
run --> maven build... --> profile选择对应的环境,如下图则是打的生成的包
本地运行
通过spring boot参数覆盖的方式执行激活环境
2018-11-16 14:52:28.211 INFO 2068 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9001 (http) with context path ''
2018-11-16 14:52:28.223 INFO 2068 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-16 14:52:28.224 INFO 2068 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 2.179 seconds (JVM running for 2.587)
热部署
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>true</scope><optional>true</optional></dependency><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork> <!-- 如果没有该配置,devtools不会生效 --></configuration></plugin></plugins></build>
spring boot + maven使用profiles进行环境隔离相关推荐
- Spring Boot+Maven实现车牌训练、识别系统
目录 1.项目功能 2.项目概述 3.项目环境 之前为各位朋友分享过Python+OpenCV实现车牌检测与识别,本篇博文为各位分享Spring Boot+Maven实现车牌训练.识别系统. 1.项目 ...
- Spring Boot Maven插件
Spring Boot Maven插件提供了使用Spring Boot应用程序步骤如下: 重新打包:创建一个可自动执行的jar或war文件.它可以替换常规工件,或者可以使用单独的分类器附加到构建生 ...
- Spring Boot——Maven使用SystemPath引用本地jar:ClassNotFoundException
问题描述 <dependency><groupId>com.dingtalk</groupId><artifactId>dingtalk-api-sdk ...
- spring boot maven项目返回值乱码的解决方法
spring boot maven项目返回值乱码的解决方法 1.先看乱码效果: spring boot maven项目,返回值乱码,如下图: 控制台打印log乱码,如下图: 有swagger的话,sw ...
- org.springframework.boot:spring boot maven plugin丢失---SpringCloud Alibaba_若依微服务框架改造_--工作笔记012
警告]"build.plugins.plugin.version"for org.springframework.boot:spring boot maven plugin丢失. ...
- Spring Boot的Maven插件Spring Boot Maven plugin详解
pring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven ...
- Spring boot + maven + jetty9在提交表单的时候出现Form too large
使用Spring boot + maven + jetty9 提交表单的时候,表单过长时,会在org.eclipse.jetty.server.Requset抛出Form too large:XXX ...
- 调用支付宝第三方接口(沙箱环境) Spring Boot+Maven
调用支付宝第三方接口(沙箱环境) Spring Boot+Maven 一.蚂蚁金服开放平台的操作 网址:https://open.alipay.com/platform/home.htm 支付宝扫码登 ...
- maven打包插件----Spring Boot Maven Plugin
官方文档链接地址:http://docs.spring.io/spring-boot/docs/1.3.0.BUILD-SNAPSHOT/maven-plugin/index.html 第一部分 Sp ...
最新文章
- java crossdomin.xml_crossdomain.xml的配置详解
- 3.2.3 页面置换算法
- JAVA SPI机制及SPI机制在Tomcat中的应用
- 百度二年级手工机器人_让父母少弯腰的家务神器——追觅扫拖机器人慧目F9评测...
- -9 逆序输出一个整数的各位数字_逆序对个数(归并排序)
- 文章下载:关于窗宽窗位调节非常有用的论文《DICOM 医学图像窗口变换的加速算法》...
- 哈尔滨矢量地图_哈尔滨地图,哈尔滨电子地图,哈尔滨地图查询,哈尔滨街景地图 - 城市吧街景地图...
- ES6文档 思维导图笔记
- oracle常用函数汇总【持续更新中...】
- stm32f103+znfat+ch375+vs1003实现简单mp3播放器功能
- 2017年全球IDC、光器件、100G及400G数通模块市场预测
- 无器械健身锻炼全身肌肉的方法
- 如何制作一面智能镜子
- nyoj-239 月老的难题 (二分图匹配—匈牙利算法 网络流—Dinic算法)
- Pandas基础-利用python进行数据分析
- 【java】输入一个整数判断它是偶数还是奇数
- MySQL中的char和varcharmysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别
- 7-219 sdut-C语言实验-A+B for Input-Output Practice (不确定次数循环)7-220 sdut-C语言实验——两个数比较
- CF 666E 题解
- 汉语树库/CoNLL格式,依存句法分析语料
热门文章
- sncr脱硝技术流程图_SNCR脱硝工艺介绍.ppt
- 微机原理——指令系统——传送类指令(MOV、LEA、LDS、LES、LAHF、SAHF、XCHG、XLAT、PUSH、POP、PUSHF、POPF)
- tmail 5.0.1 X64 企业级邮件系统安装
- T端带配置文件的魔兽世界BOSS被杀世界公告
- 01背包+概率dp Just another Robbery 抢银行
- 【陈寿福案】珊瑚虫QQ侵权案民事判决书
- Communix操作系统发展简史
- www.wolframalpha.com
- ExcelVBA之更改文件路径
- 计算机一级空了一个大题,计算机一级填选空择题及答案.doc