欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解Spring Boot Profiles 配置和使用

程序员文章站 2024-02-12 19:34:04
介绍 spring profiles 提供了一套隔离应用配置的方式,不同的 profiles 提供不同组合的配置,在不同的环境中,应用在启动时通过选择激活某些特定的...

介绍

spring profiles 提供了一套隔离应用配置的方式,不同的 profiles 提供不同组合的配置,在不同的环境中,应用在启动时通过选择激活某些特定的 profiles 来适应运行时环境,以达到在不同的环境可以使用相同的一套程序代码。

环境

  1. jdk 8
  2. maven 3
  3. intellij idea 2016
  4. spring boot 1.5.2.release

@profiles

你可以在任何 @component(@service,@repository) 或 @configuration 注解标注的类中使用 @profiles 注解:

public interface paymentservice {
  string createpaymentqrcode();
}
@service
@profile("alipay")
public class alipayservice implements paymentservice {
  @override
  public string createpaymentqrcode() {
    return "支付宝支付二维码";
  }
}
@service
@profile({"default", "wechatpay"})
public class wechatpayservice implements paymentservice {
  @override
  public string createpaymentqrcode() {
    return "微信支付二维码";
  }
}

在 spring boot 中,默认的 profile 是 default,因此,paymentservice.createpaymentqrcode() -> 微信支付二维码。

你可以通过 spring.profiles.active 来激活某个特定 profile:

java -jar -dspring.profiles.active='alipay' xxx.jar

paymentservice.createpaymentqrcode() -> 支付宝支付二维码。

多环境配置

在spring boot 中,多环境配置文件可以使用 application-{profile}.{properties|yml} 的方式。

@component
@configurationproperties("jdbc")
public class jdbcproperties {
  private string username;
  private string password;
  // getters and setters
}

开发环境 application-dev.properties 配置:

jdbc.username=root
jdbc.password=123654

生产环境 application-prod.properties 配置:

jdbc.username=produser
jdbc.password=16888888

或:

开发环境 application-dev.yml 配置:

jdbc:
 username: root
 password: 123654

生产环境 application-prod.yml 配置:

jdbc:
 username: produser
 password: 16888888

或:

只使用 application.yml,并在此文件中通过 --- 分隔符创建多 profile 配置:

app:
 version: 1.0.0
spring:
 profiles:
  active: "dev"
---
spring:
 profiles: dev
jdbc:
 username: root
 password: 123654
---
spring:
 profiles: prod
jdbc:
 username: produser
 password: 16888888

命令行启动:

java -jar -dspring.profiles.active=prod xxxx.jar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。