三十七 Java开发学习----SpringBoot多环境配置及配置文件分类

一、多环境配置在工作中,对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的 。

三十七 Java开发学习----SpringBoot多环境配置及配置文件分类

文章插图
来回的修改配置会很麻烦,而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可 。不同类型的配置文件多环境开发的配置都不相同,接下来对不同类型的配置文件进行说明
1.1 yaml文件在 application.yml 中使用 --- 来分割不同的配置,内容如下
#开发spring:profiles: dev #给开发环境起的名字server:port: 80---#生产spring:profiles: pro #给生产环境起的名字server:port: 81---#测试spring:profiles: test #给测试环境起的名字server:port: 82---上面配置中 spring.profiles 是用来给不同的配置起名字的 。而如何告知 SpringBoot 使用哪段配置呢?可以使用如下配置来启用都一段配置
#设置启用的环境spring:profiles:  active: dev  #表示使用的是开发环境的配置综上所述,application.yml 配置文件内容如下
#设置启用的环境spring:profiles:  active: dev?---#开发spring:profiles: devserver:port: 80---#生产spring:profiles: proserver:port: 81---#测试spring:profiles: testserver:port: 82---注意:在上面配置中给不同配置起名字的 spring.profiles 配置项已经过时 。最新用来起名字的配置项是
#开发spring:config:  activate:    on-profile: dev1.2 properties文件properties 类型的配置文件配置多环境需要定义不同的配置文件
  • application-dev.properties 文件是开发环境的配置文件 。我们在该文件中配置端口号为 80
    server.port=80
  • application-test.properties 文件是测试环境的配置文件 。我们在该文件中配置端口号为 81
    server.port=81
  • application-pro.properties 文件是生产环境的配置文件 。我们在该文件中配置端口号为 82
    server.port=82
SpringBoot 只会默认加载名为 application.properties 的配置文件,所以需要在 application.properties 配置文件中设置启用哪个配置文件,配置如下:
spring.profiles.active=pro1.3 命令行启动参数设置使用 SpringBoot 开发的程序以后都是打成 jar 包,通过 java -jar xxx.jar 的方式启动服务的 。那么就存在一个问题,如何切换环境呢?因为配置文件打到的jar包中了 。
我们知道 jar 包其实就是一个压缩包,可以解压缩,然后修改配置,最后再打成jar包就可以了 。这种方式显然有点麻烦,而 SpringBoot 提供了在运行 jar 时设置开启指定的环境的方式,如下
java –jar xxx.jar –-spring.profiles.active=test那么这种方式能不能临时修改端口号呢?也是可以的,可以通过如下方式
java –jar xxx.jar –-server.port=88【三十七 Java开发学习----SpringBoot多环境配置及配置文件分类】当然也可以同时设置多个配置,比如即指定启用哪个环境配置,又临时指定端口,如下
java –jar springboot.jar –-server.port=88 –-spring.profiles.active=test大家进行测试后就会发现命令行设置的端口号优先级高(也就是使用的是命令行设置的端口号),配置的优先级其实

经验总结扩展阅读