引言

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配置相关推荐

  1. Spring Boot 属性配置和使用

    spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 S ...

  2. Spring Boot 自动配置的 “魔法” 是如何实现的?

    转载自  Spring Boot 自动配置的 "魔法" 是如何实现的? Spring Boot是Spring旗下众多的子项目之一,其理念是约定优于配置,它通过实现了自动配置(大多数 ...

  3. 学习第三篇:【SpringBoot-Labs】芋道 Spring Boot 自动配置原理

    本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...

  4. Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件

    本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...

  5. springboot原生mysql写法_【Rainbond最佳实践】Spring Boot框架配置MySQL

    Rainbond开源软件介绍: Rainbond是国内首个开源的生产级无服务器PaaS. 深度整合基于Kubernetes的容器管理.多类型CI/CD应用构建与交付.多数据中心的资源管理等技术,提供云 ...

  6. spring boot自动配置

    首先,一般的java Web项目需要很多配置,web配置(web.xml).spring配置(默认叫applicationContext.xml),非常繁琐 而spring-boot-starter是 ...

  7. Spring Boot自动配置原理

    要了解Spring Boot的自动配置首先我需要先了解Spring Boot的两个机制,一个是配置文件如何进入到系统变成属性,二是如何将这些属性加入到容器中. 首先我们需要有一个组件,这个组件中的属性 ...

  8. Spring Boot - 自动配置实例解读

    文章目录 Pre 启用 debug=true输出自动配置 HttpEncodingAutoConfiguration 什么情况下,Spring Boot 会自动装配 HttpEncodingAutoC ...

  9. Spring Boot自动配置原理、实战

    Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...

最新文章

  1. matlab怎么根据波宽度去波,使用Matlab图像处理(三)——图像滤波原理
  2. NeurIPS 2021论文放榜!清华投稿90篇排名第5,北大第9
  3. 北上广Java开发月薪20K往上,该如何做,需要会写什么
  4. linux 常用命令20190917
  5. stderr和stdout(printf、fprintf、sprintf)(转)
  6. Python中的高阶函数map
  7. WIN10安装ubuntu全过程
  8. js 运算符_JS的相等和严格相等运算符(== amp; ===)
  9. 执行计划 分析一条sql语句的效率 mysql_MySQL中一条SQL语句的执行过程
  10. Acwing 734. 能量石
  11. 详解 equals() 方法和 hashCode() 方法
  12. python中函数的参数_Python小知识-Python中的函数参数(基础篇)
  13. 【转】SpringCloud学习
  14. 成绩录取系统c语言,一个学生成绩管系统C语言源代码.doc
  15. 基于GoLang实现API短信网关
  16. [Scrapy使用技巧] 如何在scrapy中捕获并处理各种异常
  17. 多项式插值与牛顿差商
  18. onclick绑定多事件
  19. Liunx 用户权限之ALC
  20. 纯CSS实现逼真翻页时钟

热门文章

  1. java uuid静态方法_Java UUID version()方法与示例
  2. Java Formatter toString()方法与示例
  3. Java SecurityManager getThreadGroup()方法与示例
  4. Android 模拟器调试的缺点
  5. PyCharm PyQt5创建主窗口源代码
  6. sas sql 读取最后一行数据_SAS基础编程和数据处理
  7. js html 转换为富文本,如何将富文本得到的html转换为pdf?
  8. 如何修改操作系统运行服务器,如何设置Bios 最常见bios设置与修改详细图解教程...
  9. 深度学习 autoencoder_笔记:李淼博士-基于模仿学习的机器人抓取与操控
  10. 图形驱动程序和显卡驱动什么区别_以后你的手机也需要单独安装显卡驱动程序了...