说明:

(1)本篇博客主要解决一下这个疑问:在【Spring Boot电商项目66:上线部署四:把项目部署到服务器;】中,遇到的:

Spring Boot有多个配置文件的时候,在实际启动的时候,选择哪个配置文件?:

          ● 比如这儿,application.properties是我们在自己的PC机上开发时,项目所用的配置文件;

          ● application-prod.properties是把项目部署到服务器上时,项目将要用的配置文件;

所以,Spring Boot程序不同的配置文件怎么写、在不同的环境中究竟要使用哪个配置文件?:这是本篇博客想要说明的问题;

目录

一: 参考文章一;

前言

SpringBoot配置文件格式

启动默认环境:如果启动时候,没有指定配置文件,就会使用application.properties这个默认的配置文件;

启动指定环境的方法:启动项目的时候,指定配置文件;

二: 参考文章二;


一: 参考文章一;

此处,参考自【「快学springboot」SpringBoot多环境配置文件】,该文的作者是【u011277123】;该文亦是转载博客;

前言

我们都知道springboot的配置卸载application.properties配置文件上(或者application.yml)。但是,如果想要把不同的环境(如开发环境,测试环境,生产环境)的配置文件分离,这要怎么做呢?其实,SpringBoot是支持指定不同的配置文件的。

SpringBoot配置文件格式

在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识(不一定是.properties文件,也可以是.yml文件)。profile的值,是开发者自定义的,只需要在启动的时候,添加对应的参数,springboot就会去读取该配置文件了。比如我们可以定义为如下格式:

application-dev.properties:开发环境 
application-test.properties:测试环境 
application-prod.properties:生产环境 

如果启动的时候,没有指定配置文件,或者指定的配置文件没有对应的项,则会从默认的配置文件中读取。

默认配置文件为:application.properties(或者application.yml);

启动默认环境:如果启动时候,没有指定配置文件,就会使用application.properties这个默认的配置文件;

我们可以通过spring.profiles.active参数来指定环境。

假设现在有两个配置文件:

application.properties

server.port=8080

application-happy.properties

server.port=9090

 如果我们不指定环境,直接启动,则会启动在8080端口:也就是:如果启动的时候,没有指定配置文件,或者指定的配置文件没有对应的项,则会从默认的配置文件中读取。而,默认配置文件为:application.properties(或者application.yml);

java -jar springboot-0.0.1-SNAPSHOT.jar

ãå¿«å­¦springbootãSpringBootå¤ç¯å¢éç½®æ件

启动指定环境的方法:启动项目的时候,指定配置文件;

1.  命令行启动指定

可以添加-Dspring.profiles.active=<profile>的方式指定

如,指定happy环境:即启动的时候,使用application-happy.properties这个配置文件;

java -jar "-Dspring.profiles.active=happy" springboot-0.0.1-SNAPSHOT.jar

ãå¿«å­¦springbootãSpringBootå¤ç¯å¢éç½®æ件

这儿就解决了自己的疑问:而在 在【Spring Boot电商项目66:上线部署四:把项目部署到服务器;​​​​​​​】中,我们在云服务器上启动项目的时候,是使用application-prod.properties这个配置文件的:

同时,也能够发现,为了在启动时,能够选区到指定的配置文件;我们给配置文件起名字的时候,应该按照【application-***.properties】的格式来命名;;;;;这样一来,就可以使用【java -jar "-Dspring.profiles.active=***" springboot-0.0.1-SNAPSHOT.jar】,来指定使用哪个配置文件了;

……………………………………………………

2.  默认配置文件指定

在application.properties中添加

spring.profiles.active=happy

启动程序:

ãå¿«å­¦springbootãSpringBootå¤ç¯å¢éç½®æ件

……………………………………………………

3.  在IDEA中指定

在run/debug configuration中,可以配置环境,如下:比如,这儿我们设置:启动项目时,使用application-happy.properties这个配置文件;

ãå¿«å­¦springbootãSpringBootå¤ç¯å¢éç½®æ件

首先,为了排出干扰,可以先把application.properties中的【spring.profiles.active=happy】环境指定去掉;

启动程序: 

ãå¿«å­¦springbootãSpringBootå¤ç¯å¢éç½®æ件

程序依然启动在了9090端口,即这儿启动的时候,使用的是application-happy.properties;

说明一下:启动的时候,如果没有指定配置文件,其会先看【2.  默认配置文件指定】中,我们是否在application.properties中配置;如果没有就会看【3.  在IDEA中指定】,我们是否在IDEA中进行了设置;如果还没有,那么就会使用application.properties;

………………

假如我把happy的指定端口号去掉,留下一个空配置。为了防止Tomcat默认端口8080的情况,把默认配置文件的端口改为7777,然后启动程序:

通过日志,可以看到是读取了happy环境。

「快学springboot」SpringBoot多环境配置文件

通过端口号,可以看到其读取了默认配置中的值。


二: 参考文章二;

此处,参考自【SpringBoot多配置文件(多环境)配置(超详细)】,该文的作者是【怪咖软妹@】; 

和第一篇博客相比,本篇博客内容都差不多;

本篇博客提到了,我们在命名配置文件的一个惯常做法; 

dev: 开发环境 
test: 测试环境
prod: 生产环境(线上)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐