详解Spring Boot Profiles 配置和使用
程序员文章站
2023-12-18 11:11:58
介绍
spring profiles 提供了一套隔离应用配置的方式,不同的 profiles 提供不同组合的配置,在不同的环境中,应用在启动时通过选择激活某些特定的...
介绍
spring profiles 提供了一套隔离应用配置的方式,不同的 profiles 提供不同组合的配置,在不同的环境中,应用在启动时通过选择激活某些特定的 profiles 来适应运行时环境,以达到在不同的环境可以使用相同的一套程序代码。
环境
- jdk 8
- maven 3
- intellij idea 2016
- 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 boot starter actuator(健康监控)配置和使用教程
-
详解spring 配置的两种方式:JAVA配置和注解配置
-
Spring Boot中配置文件application.properties使用
-
SpringBoot + Spring Security 基本使用及个性化登录配置详解
-
SpringBoot入坑笔记之spring-boot-starter-web 配置文件的使用
-
详解Spring Boot 属性配置和使用
-
详解使用Spring Cloud Consul实现服务的注册和发现
-
Spring Boot 配置和使用多线程池的实现
-
详解Spring boot Admin 使用eureka监控服务
-
详解Spring Boot中使用Flyway来管理数据库版本