详解Spring Boot Profiles 配置和使用

 更新时间:2017年06月08日 09:34:53   作者:fanlychie  
本篇文章主要介绍了详解Spring Boot 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

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

相关文章

  • spring Data jpa简介_动力节点Java学院整理

    spring Data jpa简介_动力节点Java学院整理

    这篇文章主要介绍了spring Data jpa简介的相关资料,需要的朋友可以参考下
    2017-09-09
  • java计算代码段执行时间的详细代码

    java计算代码段执行时间的详细代码

    java里计算代码段执行时间可以有两种方法,一种是毫秒级别的计算,另一种是更精确的纳秒级别的计算,这篇文章主要介绍了java计算代码段执行时间,需要的朋友可以参考下
    2022-08-08
  • 解决IDEA中不能正常输入光标变粗的问题

    解决IDEA中不能正常输入光标变粗的问题

    这篇文章主要介绍了在IDEA中不能正常输入光标变粗的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-09-09
  • mybatis如何处理返回结果集

    mybatis如何处理返回结果集

    这篇文章主要介绍了mybatis如何处理返回结果集问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • springboot Jpa多数据源(不同库)配置过程

    springboot Jpa多数据源(不同库)配置过程

    这篇文章主要介绍了springboot Jpa多数据源(不同库)配置过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 详解java中通过post方式访问后台服务器

    详解java中通过post方式访问后台服务器

    本篇文章主要介绍了详解java中通过post方式访问后台服务器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 排序算法图解之Java快速排序的分步刨析

    排序算法图解之Java快速排序的分步刨析

    快速排序是通过一趟排序将要排序的数据分割为独立的两个部分,一部分的所有数据比另外一部分的所有数据要小,然后按照此方法对这两部分分别进行快速排序,整个过程可以递归进行,以此达到整个数据变成有序序列。本文通过示例讲解了快速排序的实现,需要的可以参考一下
    2022-11-11
  • tomcat的keepAlive参数深入探究

    tomcat的keepAlive参数深入探究

    这篇文章主要为大家介绍了tomcat的keepAlive参数深入探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Java transient 关键字详解及实例代码

    Java transient 关键字详解及实例代码

    本文章向大家介绍Java transient关键字的使用方法和实例,包括的知识点有transient的作用、transient使用小结、transient使用细节,需要的朋友可以参考一下
    2016-12-12
  • Java中的BlockingQueue阻塞队列原理以及实现详解

    Java中的BlockingQueue阻塞队列原理以及实现详解

    这篇文章主要介绍了Java中的BlockingQueue阻塞队列原理以及实现详解,在最常见的使用到这个阻塞队列的地方,就是我们耳熟能详的线程池里面了,作为我们线程池的一大最大参与者,也是AQS的一个具体实现,需要的朋友可以参考下
    2023-12-12

最新评论