Spring Boot————Profile配置
引言
Spring Boot 的Profile配置,可以极大简化配置难度,可以有多种配置形式,根据位置有不同的生效方式。
探讨问题
Spring Boot 的 Profile 配置是为了解决不同环境可能存在的多种配置问题。
举例来说明的话,就是当我们开发完程序,部署到 测试环境或者生产环境的时候,可能需要配置不同的数据库连接,或者不同的日志打印级别。
通过Spring Boot的Profile 配置方式,可以方便地配置不同的配置信息,而且默认的情况也会顾及到,使用命令行也可以覆盖生效。非常方便。
获取当前生效的profile
如果希望在某个类中获取到当前生效的profile,可以通过 IOC 容器来获得。
@Autowired
private ApplicationContext context;
spring 的IOC 容器可以通过自动注入的方式获取到,通过 这个context,我们可以获得一个profile 数组,注意,这个数组可能等于 0 ,这代表没有任何 profile 生效。
String[] activeProfiles = context.getEnvironment().getActiveProfiles();// 检查 profile 是否正确
if (activeProfiles.length == 0) {System.out.println("未启用profile,非测试或开发环境!");return;
}
System.out.println("当前数据库连接环境:" + activeProfiles[0]);
Spring Boot————Profile配置相关推荐
- Spring Boot 属性配置和使用
spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 S ...
- Spring Boot 自动配置的 “魔法” 是如何实现的?
转载自 Spring Boot 自动配置的 "魔法" 是如何实现的? Spring Boot是Spring旗下众多的子项目之一,其理念是约定优于配置,它通过实现了自动配置(大多数 ...
- 学习第三篇:【SpringBoot-Labs】芋道 Spring Boot 自动配置原理
本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...
- Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...
- springboot原生mysql写法_【Rainbond最佳实践】Spring Boot框架配置MySQL
Rainbond开源软件介绍: Rainbond是国内首个开源的生产级无服务器PaaS. 深度整合基于Kubernetes的容器管理.多类型CI/CD应用构建与交付.多数据中心的资源管理等技术,提供云 ...
- spring boot自动配置
首先,一般的java Web项目需要很多配置,web配置(web.xml).spring配置(默认叫applicationContext.xml),非常繁琐 而spring-boot-starter是 ...
- Spring Boot自动配置原理
要了解Spring Boot的自动配置首先我需要先了解Spring Boot的两个机制,一个是配置文件如何进入到系统变成属性,二是如何将这些属性加入到容器中. 首先我们需要有一个组件,这个组件中的属性 ...
- Spring Boot - 自动配置实例解读
文章目录 Pre 启用 debug=true输出自动配置 HttpEncodingAutoConfiguration 什么情况下,Spring Boot 会自动装配 HttpEncodingAutoC ...
- Spring Boot自动配置原理、实战
Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...
最新文章
- matlab怎么根据波宽度去波,使用Matlab图像处理(三)——图像滤波原理
- NeurIPS 2021论文放榜!清华投稿90篇排名第5,北大第9
- 北上广Java开发月薪20K往上,该如何做,需要会写什么
- linux 常用命令20190917
- stderr和stdout(printf、fprintf、sprintf)(转)
- Python中的高阶函数map
- WIN10安装ubuntu全过程
- js 运算符_JS的相等和严格相等运算符(== amp; ===)
- 执行计划 分析一条sql语句的效率 mysql_MySQL中一条SQL语句的执行过程
- Acwing 734. 能量石
- 详解 equals() 方法和 hashCode() 方法
- python中函数的参数_Python小知识-Python中的函数参数(基础篇)
- 【转】SpringCloud学习
- 成绩录取系统c语言,一个学生成绩管系统C语言源代码.doc
- 基于GoLang实现API短信网关
- [Scrapy使用技巧] 如何在scrapy中捕获并处理各种异常
- 多项式插值与牛顿差商
- onclick绑定多事件
- Liunx 用户权限之ALC
- 纯CSS实现逼真翻页时钟
热门文章
- java uuid静态方法_Java UUID version()方法与示例
- Java Formatter toString()方法与示例
- Java SecurityManager getThreadGroup()方法与示例
- Android 模拟器调试的缺点
- PyCharm PyQt5创建主窗口源代码
- sas sql 读取最后一行数据_SAS基础编程和数据处理
- js html 转换为富文本,如何将富文本得到的html转换为pdf?
- 如何修改操作系统运行服务器,如何设置Bios 最常见bios设置与修改详细图解教程...
- 深度学习 autoencoder_笔记:李淼博士-基于模仿学习的机器人抓取与操控
- 图形驱动程序和显卡驱动什么区别_以后你的手机也需要单独安装显卡驱动程序了...