SpringBoot激活profiles的几种方式

多环境是最常见的配置隔离方式之一,可以根据不同的运行环境提供不同的配置信息来应对不同的业务场景,在SpringBoot内支持了多种配置隔离的方式,可以激活单个或者多个配置文件。

激活的profiles要在项目内创建对应的配置文件,格式为application-{profile}.yml

一、命令行方式

命令一:运行时指定,使用--spring.profiles.active

命令行方式是一种外部配置的方式,在执行java -jar命令时可以通过--spring.profiles.active=test 的方式进行激活指定的profiles列表。

使用方式如下所示:

java -jar xx-v1.0.jar --spring.profiles.active=dev --server.port=8080 &> xx.log &

命令二:打包时指定,使用 mvn -P

@profileActive@ 是配合 maven profile 进行选择不同配置文件进行开发

第一步:在 application.properties 中配置

spring.profiles.active=@profileActive@

第二步:在pom 中配置

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <profileActive>dev</profileActive>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <profileActive>prod</profileActive>
        </properties>
    </profile>
</profiles>

 第三步:打包命令

mvn package -P prod -DskipTests

 个人不喜欢这种方式,麻烦。建议使用“命令一”的方式。

二、系统变量方式

Mac/Linux系统配置环境变量

编辑环境变量配置文件/etc/profile,添加名为SPRING_PROFILES_ACTIVE的环境变量,如下所示:

export SPRING_PROFILES_ACTIVE=dev

Windows系统配置环境变量

环境变量的配置方式请参考Java环境变量配置,新建一个名为SPRING_PROFILES_ACTIVE的系统环境变量,设置变量的值为dev即可。

在配置文件中读取环境变量,如下:

${SPRING_PROFILES_ACTIVE:dev}

三、配置文件方式

配置文件方式是最常用的方式,不过灵活性不强,局限性比较大,不建议使用这种方式来激活配置文件。

我们只需要在application.yml配置文件添加配置即可,使用方式如下所示:

spring:
  profiles:
    active: dev

四、Java系统属性方式

Java系统属性方式也是一种外部配置的方式,在执行java -jar命令时可以通过-Dspring.profiles.active=test的方式进行激活指定的profiles列表。

使用方式如下所示:

java -Dspring.profiles.active=dev -jar xx-v1.0.jar &> xx.log &

注意:-D方式设置Java系统属性要在-jar定义。

 五、补充说明

5.1 优先级

命令行方式 > Java系统属性方式 > 系统变量方式 > 配置文件方式

经过测试"命令行方式"的优先级最高,而"内部配置文件方式"则是最低的。

5.2 激活多个profile

如果需要激活多个profile可以使用逗号隔开,如:

--spring.profiles.active=dev,test

最后,建议大家在“生产环境”使用“命令行” 或 “系统环境变量"的方式来激活指定profile的配置。同样,端口也建议使用这两种方式来指定。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,可以使用`spring.profiles.active`属性来激活特定的配置文件。通过设置该属性,你可以根据不同的环境加载不同的配置。 首先,在`application.yml`或`application.properties`文件中,你可以指定要激活的配置文件,例如: ```yaml spring: profiles: active: dev ``` 这里的`dev`是你想要激活的配置文件的名称,可以根据你的需求进行设置。 然后,在你的项目中,你可以创建多个配置文件,例如`application-dev.yml`、`application-test.yml`、`application-prod.yml`等,分别对应不同的环境。 在激活的配置文件中,你可以根据需要设置不同的属性。例如,在`application-dev.yml`中: ```yaml server: port: 8080 context-path: /dev ``` 在`application-test.yml`中: ```yaml server: port: 8081 context-path: /test ``` 在`application-prod.yml`中: ```yaml server: port: 80 context-path: / ``` 当你启动应用程序时,根据激活的配置文件,Spring Boot会加载相应的配置,并使用其中定义的属性。 另外,你还可以使用`@Profile`注解来指定特定的配置类或组件只在特定的环境激活。例如: ```java @Configuration @Profile("dev") public class DevConfig { // dev环境下的配置 } @Configuration @Profile("prod") public class ProdConfig { // prod环境下的配置 } ``` 以上是使用`spring.profiles.active`属性来激活特定的配置文件的方法。希望能对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值