详解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


相关推荐: Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  如何续费美橙建站之星域名及服务?  深入理解Android中的xmlns:tools属性  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  Laravel如何使用模型观察者?(Observer代码示例)  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel安装步骤详细教程_Laravel环境搭建指南  JavaScript如何实现错误处理_try...catch如何捕获异常?  浅析上传头像示例及其注意事项  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel如何创建自定义Facades?(详细步骤)  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  在线制作视频网站免费,都有哪些好的动漫网站?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  如何在企业微信快速生成手机电脑官网?  Laravel如何使用Eloquent进行子查询  如何在宝塔面板创建新站点?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何在Windows 2008云服务器安全搭建网站?  昵图网官方站入口 昵图网素材图库官网入口  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何快速建站并高效导出源代码?  PythonWeb开发入门教程_Flask快速构建Web应用  如何确认建站备案号应放置的具体位置?  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Python面向对象测试方法_mock解析【教程】  如何用好域名打造高点击率的自主建站?  历史网站制作软件,华为如何找回被删除的网站?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  无锡营销型网站制作公司,无锡网选车牌流程?  Android中AutoCompleteTextView自动提示  怎么用AI帮你为初创公司进行市场定位分析?  Windows Hello人脸识别突然无法使用  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  手机软键盘弹出时影响布局的解决方法  PHP正则匹配日期和时间(时间戳转换)的实例代码  Android okhttputils现在进度显示实例代码  如何用腾讯建站主机快速创建免费网站?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  如何在IIS中新建站点并配置端口与IP地址?  iOS验证手机号的正则表达式  打造顶配客厅影院,这份100寸电视推荐名单请查收  Laravel如何优化应用性能?(缓存和优化命令)  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?