详解Spring Boot Profiles 配置和使用
发布时间 - 2026-01-11 01:47:22 点击率:次介绍

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
# 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如何优化应用性能?(缓存和优化命令)
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?

