SpringBoot profles配置多环境

23/100

发布文章

u014427391

软件环境简介

这里介绍一下SpringBoot提供的profiles属性加上maven配置一下多环境,在实践生产中,正规一点的可能有开发环境、测试环境、预发布环境、生产环境等等,而这些环境的参数肯定都不一样,换环境的时候,经常需要修改参数,参数一多,维护起来很麻烦,所以SpringBoot提供了通过profiles配置来达到多环境配置,不需要项目一上生产环境还是预发布就改一堆配置文件。

软件环境:

  • application-dev(开发环境)
  • application-test(测试环境)
  • application-uat(预发布)
  • application-prod(生产环境)

配置文件格式可以为preperties或者yml,因为yml写起来比较简介,所以本博客介绍一yml的配置文件,介绍一下配置方式:

yml配置profiles

先介绍一下通过SpringBoot配置文件的这种方式,这里需要新建如图yml配置文件:

  • application-dev.yml(开发环境)
  • application-test.yml(测试环境)
  • application-uat.yml(预发布)
  • application-prod.yml(生产环境)

配置比较容易,需要在application.yml配置:

spring:
profiles:
active: dev

给出我的application.yml配置,可以参考:

server:
context-path: /jeeplatform
error:
whitelabel:
enabled: true spring:
profiles:
active: dev

开发环境apprlication-dev.yml配置,根据自己需要配置:

server:
port: 8080 spring: datasource: # 主数据源
shop:
url: jdbc:mysql://127.0.0.1:3306/jeeplatform?autoReconnect=true&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
username: root
password: root driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource # 连接池设置
druid:
initial-size: 5
min-idle: 5
max-active: 20
# 配置获取连接等待超时的时间
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
# Oracle请使用select 1 from dual
validation-query: SELECT 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
use-global-data-source-stat: true # JPA配置
jpa:
database: mysql
hibernate:
show_sql: true
format_sql: true
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl # MVC配置
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp #Jedis配置
jedis :
pool :
host : 127.0.0.1
port : 6379
password : redispassword
timeout : 0
config :
maxTotal : 100
maxIdle : 10
maxWaitMillis : 100000

测试环境、预发布环境、生产环境的配置类似,根据需要配置

如果是jar,可以直接运行命令:

java -jar [jar名称].jar --spring.profiles.active=[环境参数(dev|test|uat|prod)]

eg:

java -jar myproject.jar --spring.profiles.active = dev

拓展,配置maven

这是另外的拓展,其实也是基于前面的配置,配置多环境信息在maven的pom文件里,主要目的是maven打包的时候,可以通过传环境参数对应package

配置,需要在maven的pom文件添加配置信息,这里设置默认开发环境,设置<activeByDefault>为true

<profiles>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
<project.packaging>jar</project.packaging>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<activatedProperties>test</activatedProperties>
<project.packaging>jar</project.packaging>
</properties>
</profile>
<profile>
<id>uat</id>
<properties>
<activatedProperties>uat</activatedProperties>
<project.packaging>jar</project.packaging>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
<project.packaging>jar</project.packaging>
</properties>
</profile>
</profiles>

可以修改一下application.yml:直接读maven配置文件:

server:
context-path: /jeeplatform
error:
whitelabel:
enabled: true spring:
profiles:
active: @activatedProperties@
application:
name: @project.name@_${spring.profiles.active}

maven根据环境package

maven clean package -Pdev | -Ptest | -Puat | -Pprod

eg:直接package开发环境的

maven clean package -Pdev

SpringBoot系列之profles配置多环境(篇一)的更多相关文章

  1. SpringBoot系列之profles配置多环境(篇二)

    SpringBoot系列之profles配置多环境(篇二) 继续上篇博客SpringBoot系列之profles配置多环境(篇一)之后,继续写一篇博客进行补充 写Spring项目时,在测试环境是一套数 ...

  2. SpringBoot系列之外部配置用法简介

    SpringBoot系列之外部配置用法简介 引用Springboot官方文档的说法,官方文档总共列举了如下用法: 1.Devtools global settings properties on yo ...

  3. SpringBoot 系列教程自动配置选择生效

    191214-SpringBoot 系列教程自动配置选择生效 写了这么久的 Spring 系列博文,发现了一个问题,之前所有的文章都是围绕的让一个东西生效:那么有没有反其道而行之的呢? 我们知道可以通 ...

  4. SpringBoot日记——SpringMvc自动配置与扩展篇

    为了让SpringBoot保持对SpringMVC的全面支持和扩展,而且还要维持SpringBoot不写xml配置的优势,我们需要添加一些简单的配置类即可实现: 通常我们使用的最多的注解是: @Bea ...

  5. SpringBoot系列教程JPA之基础环境搭建

    JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Spring Data JPA是在 Hibernat ...

  6. SpringBoot系列之YAML配置用法

    1.全局配置 SpringBoot的全局配置文件有两种: application.properties application.yml 配置文件的作用:修改SpringBoot自动配置的默认值,主要是 ...

  7. springboot系列四、配置模板引擎、配置热部署

    一.配置模板引擎 在之前所见到的信息显示发现都是以 Rest 风格进行显示,但是很明显在实际的开发之中,所有数据的显示最终都应该交由页面完成,但是这个页面并不是*.jsp 页面,而是普通的*.html ...

  8. nopCommerce 3.9 大波浪系列 之 NUnit 配置调试环境

    官网:http://nunit.org/ GitHub:https://github.com/nunit 本文只介绍NUnit在VS中的配置使用,进一步学习 NUnit 请参考官方文档. nopCom ...

  9. SpringBoot系列之学习教程汇总

    对应SpringBoot系列博客专栏,例子代码,本博客不定时更新 一.配置篇 SpringBoot系列之@PropertySource读取yaml文件     >> source down ...

随机推荐

  1. 用openresty(Lua)写一个获取YouTube直播状态的接口

    文章原发布于:https://www.chenxublog.com/2019/08/29/openresty-get-youtube-live-api.html 之前在QQ机器人上面加了个虚拟主播开播 ...

  2. Python - 输入和输出 - 第十七天

    Python 输入和输出 在前面几个章节中,我们其实已经接触了 Python 的输入输出的功能.本章节我们将具体介绍 Python 的输入输出. 输出格式美化 Python两种输出值的方式: 表达式语 ...

  3. 【转】Python学习---超详细字符串用法大全,好文推荐!

    来自:Python编程与实战(微信号:pthon1024),作者:Jerryning 没有办法转,整个复制下来了 本文要点 字符串拼接 拆分含有多种分隔符的字符串 判读字符串a是否以字符串b开头或结尾 ...

  4. Delphi2007 在Win10 下运行报错 Assertion failure

    Delphi2007 原来安装在Win7 下 运行正常, 自从升级到Win10 ,新建工程运行然后关闭报错, 报错信息如下: ---------------------------bds.exe - ...

  5. rt-thread can

    rt-thread stm32f10x-HAL can的驱动和应用.源码暂时还不支持,自己通过F4修改了一版 源码地址:https://gitee.com/gitee.thomas/rt_can rt ...

  6. leetcode - 链表两两元素交换 + 判断链表有无环

    链表两两元素交换 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3->4, 你 ...

  7. Python 定时调度

    APScheduler APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务 ...

  8. Factorization Machine算法

    参考: http://stackbox.cn/2018-12-factorization-machine/ https://baijiahao.baidu.com/s?id=1641085157432 ...

  9. 百度云部署SSL证书

    查找中间证书 为了确保兼容到所有浏览器,我们必须在阿里云上部署中间证书,如果不部署证书,虽然安装过程可以完全也不会报错,但可能导致Android系统,Chrome 和 Firefox等浏览器无法识别. ...

  10. Win2003下配置iis+php+mysql+zend

    所需软件: ActivePerl.PHP.MYSQL.Zend (一.安装IIS6.0;二.配置PHP环境;三.安装mysql;四.安装 Zend Optimizer;五.配置PHPMYADMIN) ...