SpringBoot2.0学习笔记:(三) Profiles在Spring Boot中的使用

2022-12-31 13:08:48

一、简单介绍

在项目的开发中,有些配置文件在开发、测试或者生产等不同环境中可能是不同的,例如数据库连接、redis的配置等等。那我们如何在不同环境中自动实现配置的切换呢?Spring给我们提供了profiles机制,下面看看在Spring Boot中是如何使用Profiles功能的。

在Spring Boot中多环境配置文件名需要使用application-{profile}.properties的格式,这里的**{profile}**对应的是你的环境标识。例如:

  • application-dev.properties — 这是开发环境
  • application-prod.properties — 这是生产环境

二、激活指定profile

我们在首先在Resource目录下新建两个配置文件,分别命名为application-dev.properties以及application-prod.properties,为了方便看到区别,我们分别在三个配置文件中分别指定tomcat启动端口:

这里写图片描述

application.properties

server.port=8081

application-dev.properties

server.port=8082

application-prod.properties

server.port=8083

这个时候我们没有指定任何profile,执行启动类的main方法,可以看到:

Tomcat started on port(s): 8081 (http) with context path ''

程序会默认加载application.properties中的配置,我们想要使用对应的环境,只需要在application.properties中使用spring.profiles.active属性来设置,值对应上面提到的{profile},这里就是指dev、prod:

server.port=8081
spring.profiles.active=dev

重新启动Main方法:

Tomcat started on port(s): 8082 (http) with context path ''

可以看到tomcat启动端口为8082。

####从上面的结果可以看出,application-dev.properties中的配置覆盖了application.propertie中的配置。我们在配置文件中可以将与环境无关的属性放到application.propertie中进行配置,而根据环境的变化而变化的配置放到各个application-{profile}.properties文件中。

三、激活profile的方式

上面展示了第一种激活profile的方式,即在application.properties中指定属性spring.profiles.active的值。但是这种方式在实际项目中的使用并不合适,因为你每次提交代码还要手动修改pring.profiles.active的值。

第二种可以使用命令行的方式,Spring Boot的程序一般是打成jar包,在使用java -jar 执行jar包的时候,可以再后面加上:

--spring.profiles.active=dev;

例如

java -jar target/spring-boot-helloworld-0.0.1.jar --spring.profiles.active=prod

可以看到启动端口为:

Tomcat started on port(s): 8083 (http) with context path ''

若是使用IDEA进行开发的话,还可以修改启动配置:

这里写图片描述

这里写图片描述

之后执行Main方法,依然激活了dev的配置。

第三种是修改虚拟机的配置,在虚拟机配置哪里加上:

-Dspring.profiles.active=dev

这里写图片描述

之后执行Main方法,同样激活了dev的配置。

  • 作者:第二庄
  • 原文链接:https://blog.csdn.net/liujun03/article/details/82592929
    更新时间:2022-12-31 13:08:48