详解Spring Boot Profiles 配置和使用

发布时间 - 2026-01-11 01:47:22    点击率:

介绍

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  # Boot  # Profiles配置  # Profiles  # springboot yml中profiles的巧妙用法(小白必看多环境配置)  # 使用spring.profiles.active来分区配置的方法示例  # Spring Boot配置特定属性spring.profiles的方法  # Spring Boot 2.4配置特定环境时spring: profi  # 你可以  # 可以使用  # 支付宝  # 在此  # 用在  # 命令行  # 配置文件  # 启动时  # 大家多多  # 类中  # 分隔符  # 以达到  # Configuration  # pre  # Repository  # PaymentService  # alipay  # Service  # class  # Profile 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  如何在云主机上快速搭建多站点网站?  Python进程池调度策略_任务分发说明【指导】  如何撰写建站申请书?关键要点有哪些?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  php json中文编码为null的解决办法  详解jQuery中的事件  Laravel如何处理文件下载请求?(Response示例)  如何快速配置高效服务器建站软件?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  如何用PHP快速搭建高效网站?分步指南  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  韩国服务器如何优化跨境访问实现高效连接?  独立制作一个网站多少钱,建立网站需要花多少钱?  如何用AWS免费套餐快速搭建高效网站?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  如何在橙子建站上传落地页?操作指南详解  Laravel怎么实现模型属性的自动加密  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  如何快速搭建安全的FTP站点?  如何快速选择适合个人网站的云服务器配置?  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  香港服务器网站卡顿?如何解决网络延迟与负载问题?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  网站建设要注意的标准 促进网站用户好感度!  香港服务器租用费用高吗?如何避免常见误区?  如何快速搭建支持数据库操作的智能建站平台?  三星、SK海力士获美批准:可向中国出口芯片制造设备  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel如何配置任务调度?(Cron Job示例)  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  油猴 教程,油猴搜脚本为什么会网页无法显示?  MySQL查询结果复制到新表的方法(更新、插入)  如何快速使用云服务器搭建个人网站?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  如何用美橙互联一键搭建多站合一网站?  如何挑选优质建站一级代理提升网站排名?  七夕网站制作视频,七夕大促活动怎么报名?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  魔毅自助建站系统:模板定制与SEO优化一键生成指南