springboot设置多环境配置文件
实际开发过程中会涉及多个环境,比如dev(开发环境),test(测试环境),prod(线上环境),不同环境下,端口号、数据库地址、redis地址等等会不尽相同,为了避免每次上线到不同环境都要修改配置文件可以在项目中配置多个配置文件,需要哪个激活哪个。
简单使用,不涉及过多讲解
实现方法(以.yml为例):
方法一:创建多个.yml文件
在项目中创建三个.yml文件,分别是
application-dev.yml、application-test.yml、application-prod.yml
application-dev.yml (包含稍微多一些的配置,以防后面忘了咋配可以看一下)
server:
port: 8081
servlet:
context-path: "/admin" #修改项目访问路径 ,默认是 /
spring:
application:
name: volcano-admin
#mysql
datasource:
url: jdbc:mysql://localhost:3306/volcano?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
#redis
redis:
host: 127.0.0.1
port: 6379
# mybatis
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.passion.volcanoadmin.entity
application-prod.yml(简单配置,区分dev和pro环境,就用端口号prot不同体现了)
server:
context-path: /admin
port: 8082
lapplication-test.yml(简单配置,区分dev和test环境,就用端口号prot不同体现了)
server:
context-path: /admin
port: 8083
在application.yml中激活要使用的配置文件
application.yml
#激活不同环境的配置文件
spring:
profiles:
active: dev
激活的是dev环境,所以项目启动时会读取application-dev.yml,使用的是8081的端口号
方法二:一个文件中使用“—”分隔符分割不同环境的配置,每个块中指定 使用profile: dev指定环境
application.yml
server:
port: 8089
servlet:
context-path: "/admin" #修改项目访问路径 ,默认是 /
profile: dev
---
server:
port: 8088
profile: test
---
server:
port: 8087
profile: prod
spring:
application:
name: volcano-admin
#mysql
datasource:
url: jdbc:mysql://localhost:3306/volcano?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
---
#激活不同环境的配置文件
spring:
profiles:
active: prod
激活的是prod,此时读的是profile: profile的块,所以端口号是8087
配置文件的激活方式
配置文件的激活方式有四种
- 在配置文件中激活(上面的例子就是)
- 在虚拟机参数中指定激活 (VM options 和 program arguments两种方式)
- 使用命令行运行是指定
具体如何操作:
1、在配置文件中激活,上面的实例就是使用的这种方式
在application.yml中指定
#激活不同环境的配置文件
spring:
profiles:
active: prod
2、虚拟机的参数中指定
2.1 VM options
点开之后会有一个 “VM options”的框,根据idea版本不同可能会有所不同。如果没有可以点击“Modify options” 下拉框中会有“VM options”,选择后“VM options”框就会出来,配置上
“-Dspring.profiles.active=test" 即可,此时激活的是test环境
(说明:我本机使用的时三个配置文件的方式,所以dev的port是8081,prod的port是8082,test的port是8083)启动项目:
2.2program arguments
同2上的位置,可以找到“program arguments”的框,如果没有就是“Modify options”下拉框中找。配置上“–spring.profiles.active=prod”,此时激活的是prod环境(我本机设置的pror是8082),启动项目:
3、运行是指定运行环境
运行jar包的命令是 jave -jar xxx.jar,如果要指定运行环境在后面加上–spring.profiles.active=dev
即:java -jar xxx.jar–spring.profiles.active=dev
顺便说一下jave打包,
可以使用idea 右侧MAVEN —— package进行打包,这种方式打包到当前项目的target文件夹下。也可以使用mvn install进行打包,这种方式会打包到maven setting.xml配置的仓库中