1、多profiles的形式

分别新增application-dev.properties和application-prod.properties配置文件,

其中application-dev.properties中配置端口为:server.port=8081    

其中application-prod.properties中配置端口为:server.port=8082

而原application.properties中配置的端口为:server.port=8080; 

测试:启动引导类,发现启动的端口为8080;

在application.properties中增加 spring.profiles.active=dev,指定加载dev环境的profile文件,即application-dev.properties,重新启动,发现启动端口为8081;

在application.properties中增加 spring.profiles.active=prod,指定加载prod环境的profile文件,即application-prod.properties,重新启动,发现启动端口为8082;

如果将spring.profiles.active=prod1,而没有prod1对应的配置文件,则默认使用application.properties中的配置,即8080端口

2、在yml中以文档块的形式配置

在application.yml中以3各横线“---”的形式进行文档块分隔

第一种情况:

server:
port: 8083
#spring:
# profiles:
# active: dev
---
server:
port: 8084
#spring:
# profiles: dev
---
server:
port: 8085
#spring:
# profiles: lt

3个文档块,但是没有指定属于哪种环境,所以最下边的内容会覆盖上边的内容,即启动端口为8085

第二种情况:

  

server:
port: 8083
#spring:
# profiles:
# active: dev
---
server:
port: 8084
spring:
profiles: dev
---
server:
port: 8085
spring:
profiles: lt

指定了每个文档块所属环境,但是没有指定具体启用哪个文档块,则启用默认的文档块,即端口8083

第三种情况:

server:
port: 8083
spring:
profiles:
active: dev
---
server:
port: 8084
spring:
profiles: dev
---
server:
port: 8085
spring:
profiles: lt

通过标红部分指定启用dev环境,即启动端口号为8084

3、通过配置启动应用的参数或者虚拟机参数的形式来启动,则以此为准,yml中指定的启用的哪个环境不再生效

或者通过配置VM options指定:

虽然配置文件指定使用dev,应该为8084,但是此处通过参数的形式指定启用lt环境,所以真正启用的端口为8085 

4、通过命令行的方式给定参数来指定启用哪个环境

通过IntelliJ IDEA工中的maven -- package将项目打包,将jar包拷贝到指定目录,打开cmd窗口,cd 到指定目录,在该目录下运行如下命令:

java -jar  springboot_test-0.0.1-SNAPSHOT.jar --spring.profiles.active=lt

即可启动lt文档块对应 8085

若有理解不到位之处,望指正!

12-30 15:25