3.8 使用@Profile

2023-05-16

在企业开发的过程中,项目往往要面临开发环境、测试环境、准生产环境和生产环境的切换,每一套的上下文是不一样的,它们有各自的数据库资源

Profile机制:实现各个环境之间的切换。
假设存在dev_spring_boot和test_spring_boot两个数据库,这样可以使用注解**@Profile**定义两个Bean:

@Bean(name = "dataSource", destroyMethod = "close")
@Profile("dev")
public DataSource getDevDataSource() {
    Properties props = new Properties();
    props.setProperty("driver", "com.mysql.jdbc.Driver");
    props.setProperty("url", "jdbc:mysql://localhost:3306/dev_spring_boot");
    props.setProperty("username", "root");
    props.setProperty("password", "123456");
    DataSource dataSource = null;
    try {
        dataSource = BasicDataSourceFactory.createDataSource(props);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return dataSource;
}
@Bean(name = "dataSource", destroyMethod = "close")
@Profile("test")
public DataSource getTestDataSource() {
    Properties props = new Properties();
    props.setProperty("driver", "com.mysql.jdbc.Driver");
    props.setProperty("url", "jdbc:mysql://localhost:3306/test_spring_boot");
    props.setProperty("username", "root");
    props.setProperty("password", "123456");
    DataSource dataSource = null;
    try {
        dataSource = BasicDataSourceFactory.createDataSource(props);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return dataSource;
}

在Spring中存在两个参数以修改启动Profile机制,两个属性都没有配置的情况下,Spring将不会启动Profile机制,即被@Profile标注的Bean将不会被Spring装配到IoC容器中:
一个是spring.profiles.active
一个是spring.profiles.default
两个属性存在优先级,先判定是否存在spring.profiles.active配置后,再去查找spring.profiles.default配置的

通过这个配置就能启动Profile机制,指定环境

JAVA_OPTS="-Dspring.profiles.active=dev"

将日志的配置级别改为DEBUG,会有很详细的日志显示

logging.level.root=debug
logging.level.org.springframework=debug
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3.8 使用@Profile 的相关文章

  • Linux 添加环境变量的两种方法 exprot 临时法 vi /etc/profile永久法

    编写一个shell脚本之后 xff0c 怎么可在任意目录运行改脚本呢 xff1f 为什么别人写的脚本可以直接运行 xff0c 自己写的脚本就会出现 bash XXXXX sh command not found 这样的错误呢 xff1f 1
  • 为什么每次进入命令都要重新source /etc/profile 才能生效?

    span style color 999988 编辑JDK8 span span style color 0086b3 export span JAVA HOME 61 span style color dd1144 34 usr java
  • 【linux】 profile和bashrc, ~/.profile ,~/.bashrc

    影响范围 1 profile和bashrc 影响范围加载 etc profile etc profile d 系统 xff08 对所有用户起作用 xff09 系统登录后 profile用户启动bash shell etc bash bash
  • 3.8 使用@Profile

    在企业开发的过程中 xff0c 项目往往要面临开发环境 测试环境 准生产环境和生产环境的切换 xff0c 每一套的上下文是不一样的 xff0c 它们有各自的数据库资源 Profile机制 xff1a 实现各个环境之间的切换 假设存在dev
  • springboot整合maven Profile实现properties文件多环境配置

    步骤 首先写几个properties的配置文件 一般这样的文件有三个 而且文件的名称也也可以随意 不论你们的项目是使用的springmvc还是springboot 文件名称都可以随意指定 例如我的几个文件 在文件中写一些测试的属性值 方便测
  • iOS 基础:证书介绍

    首先 打开developer apple com 在iOS Dev Center打开Certificates Indentifiers Profiles认识一下基本结构 列表就包含了开发 调试和发布iOS应用程序所需的所有内容 Certif
  • 用于创建用户配置文件的 Windows API

    我正在尝试找到用于创建用户配置文件的 Window API 我正在 Windows 中创建本地用户 并且尝试使用 CreateProcessWithLogonW 并设置了 LOGON WITH PROFILE 标志来与该用户运行进程 由于配
  • 如何在 bash 脚本中使用 bash 配置文件中定义的函数?

    我的 bash profile 中有一个投影函数 现在我尝试从 bash 脚本调用此函数 但出现未找到错误 如何使投影函数对 bash 脚本可见 您必须导出该函数 export f foo ref
  • 了解 Python 配置文件输出

    我正在尝试使用 Python 分析器来加速我的代码 我已经能够确定几乎所有时间都花在哪个特定函数上 但我无法弄清楚该函数中的时间花在哪里 下面是配置文件输出 其中显示 appendBallot 是罪魁祸首 耗时近 116 秒 下面 我有 a
  • 测量“睡眠”功能的时间

    前几天我发布了这个问题 测量轮廓函数的时间 我希望我可以打开一个新线程 我只是在前几页中找不到旧的线程 我注意到在我的分析过程中 我调用了 睡眠 方法 这就是问题所在 当我调用 SuspendThread ResumeThread 时 睡眠
  • 为什么新数组很慢?

    比较操作时 var fat cats cats slice to var fat cats new Array cats length 性能差异令人困惑 在 Firefox 和 Chrome 中new Array速度较慢 当它应该更快时 它
  • 删除了配置门户中的团队配置配置文件:*,该怎么办?

    我不小心删除了配置门户中的团队配置配置文件 我现在应该做什么 我有一台安装了 Xcode 4 2 的 MacBook 我还在 熟悉 iOS 配置门户和 Xcode 的过程中删除了 iOS 团队配置配置文件 我没有成功地恢复它 无论是从 Xc
  • Django 编辑用户配置文件

    我正在尝试在前面创建一个 编辑个人资料 表单 发生的情况是我的表单 我不是 100 确定 尝试创建一个用户 而不是查找当前用户并更新他的个人资料 所以我认为这就是问题所在 在这里检查了很多问题 但没有一个足够清楚 我尝试编辑的字段是电子邮件
  • Eclipse + maven:忽略配置文件

    这是我的 pom xml
  • 如何在 ASP.NET 中使用 Profile?

    我尝试学习 asp net 配置文件管理 但我在下面添加了 xml 名字 姓氏等 但我不能写个人资料 如果我尝试编写 Profile 属性 卓尔我的编辑简介 错误 1 当前上下文中不存在名称 配置文件 C Documents and Set
  • Ruby on Rails - 创建用户时创建配置文件

    所以基本上我已经编写了自己的身份验证而不是使用 gem 因此我可以访问控制器 我的用户创建工作正常 但是当创建我的用户时 我还想在我的个人资料模型中为他们创建个人资料记录 我已经让它大部分工作了 我只是似乎无法将新用户的 ID 传递到新的
  • 使用 Watir-Webdriver 时 Chrome 中的默认配置文件名称?

    我下载了 Chromedriver 然后将其解压到正确的位置 usr bin 但我不知道 Chrome Chromium 浏览器的默认配置文件名称是什么 因此此行抛出错误消息 browser Watir Browser new chrome
  • 在多个生命周期中运行 Maven 目标

    我有一个情况 我想在验证阶段和报告阶段运行 cobertura 插件 我有两个配置文件 它们都应该运行 cobertura 插件 但在配置文件 A 中 我只想创建 xml html 输出 但在配置文件 B 中 我将生成包含这些结果的完整站点
  • aspnet_Profiles 表中的 PropertyValuesString 和 PropertyValuesBinary 字段有何用途?

    我认为 PropertyValuesString 用于通常是这些类型对象的键值对的值部分 但是 如果您已经将值放入 PropertyValuesString 中 那么 PropertyValuesBinary 字段会出现在哪里呢 这两个字段
  • Maven 配置文件 - 如何为父级运行插件一次,为模块运行多次?

    我对詹金斯的输出有点困惑 Jenkins 上的工作 底部缩短了 pom xml mvn deploy Pprofile1 我的所有插件都会运行 4 次 父 pom xml 父 module1 pom xml 父 module2 pom xm

随机推荐

  • STM32 FreeRTOS学习——任务创建

    任务创建 任务概念 什么是任务 任务函数没有返回值 xff0c 并且参数是指针类型 很少使用 基本可以不管 void entry task void pvParameters 任务主体 xff0c 无限循环且不能返回值 while 1 任务
  • kinect v2 相机标定

    目录 ubuntu删除命令 相机标定 一些快捷键 准备工作 详细步骤 ubuntu删除命令 ubuntu中删除命令一般使用rm xff0c 但是rm误删之后 xff0c 想恢复比较麻烦 xff0c 所以在这里介绍另外一种删除方法 xff0c
  • 研究生如何读论文

    作为一个准研究生 xff0c 马上就要开始加入到读论文的大军中 xff0c 如何读论文是我们共同关心的问题 xff0c 笔者在这方面做了一些小调查 xff0c 发现台湾清华彭明辉教授的研究生手册非常有启发意义 xff0c 现摘录一下对自己很
  • 嵌入式面试资料整理

    第一章进程线程的基本概念 1 什么是进程 xff0c 线程 xff0c 有什么区别 2 多进程 多线程的优缺点 3 什么时候用进程 xff0c 什么时候用线程 4 多进程 多线程同步 xff08 通讯 xff09 的方法 5 进程线程的状态
  • MSP-EXP430F5529LP_GPIO

    为了能让学习更有动力并且坚持下去 xff0c 突然想到可以用博客的形式来记录自己的学习历程 xff0c 一方面是基于上述原因并且可以留下笔记来方便日后查看 xff0c 另一方面感觉写出来一些东西可以让学习更加具有逻辑性 xff0c 今天就让
  • 【STM32】STM32内存映射以及启动过程(超详细过程)

    一 内存映射 1 内存映射图 下图是 STM32F103xCDE 型号的内存映射图 2 内存划分 由于 STM32 是 32 位 xff0c 且其地址总线也为 32 根 xff0c 所以其理论能够寻找的地址大小为 4GB 从上图可以看出 x
  • Linux学习笔记(c):udp客户端向服务器端传输照片

    客户端 span class token macro property span class token directive keyword include span span class token string lt stdio h g
  • 立创EDA绘板记录

    今天是第一次接触EDA xff0c 下载了立创的软件画板子 简单上b站看了立创十几分钟的入门教学视频 xff0c 刚好自己手边有51单片机的开发板和一个最小系统 xff0c 就决定自己动手画一个最小系统 最小系统主要由复位电路 xff0c
  • 02-线性结构2 一元多项式的乘法与加法运算 (20 分)

    02 线性结构2 一元多项式的乘法与加法运算 20 分 设计函数分别求两个一元多项式的乘积与和 输入格式 输入分2行 xff0c 每行分别先给出多项式非零项的个数 xff0c 再以指数递降方式输入一个多项式非零项系数和指数 xff08 绝对
  • 03-树2 List Leaves (25 分)

    03 树2 List Leaves 25 分 Given a tree you are supposed to list all the leaves in the order of top down and left to right I
  • Jupyter Notebook上使用tensorflow的血泪教训

    本文所涉及的环境为CUDA Version 10 1 105 xff0c tensorflow gpu2 3 0 xff0c python3 6 xff0c 本文不涉及任何配置环境的细节 xff0c 仅分享在Jupyter Notebook
  • java.sql.SQLNonTransientConnectionException: Could not create connection to database server

    使用JdbcTemplate连接数据库时发生错误 xff1a java sql SQLNonTransientConnectionException Could not create connection to x1f4a5 报错有这么长
  • Springboot集成Neo4j与Shiro冲突

    springboot集成neo4j时 xff0c 由于neo4j与shiro均包含名为 34 sessionFactory 34 的bean xff0c 项目启动时在生成neo4j的session对象时 createSharedSessio
  • 2.4 开发自己的Spring Boot项目

    Spring MVC的视图解析器的作用主要就是定位视图的 xff0c 也就是当控制器只是返回一个逻辑名称的时候 xff0c 是没有办法直接找到对应视图的 xff0c 这就需要视图解析器来解析了 在Maven的pom xml中加入JSP和JS
  • 3.1 IoC容器简介

    所有的IoC容器都需要实现接口BeanFactory xff0c 这是一个顶级的容器接口 BeanFactory接口源码 xff1a span class token comment span span class token commen
  • 3.2.1 通过扫描装配你的Bean

    对于扫描装配而言使用的注解是 64 Component和 64 ComponentScan 64 Component是标明哪个类被扫描进入IoC容器 xff0c 而 64 ComponentScan则是标明采用何种策略去扫描装配Bean 修
  • 3.5 使用属性文件

    可以采用默认为我们配置的application properties xff0c 也可以使用自定义的配置文件 引入属性文件依赖 span class token tag span class token tag span class tok
  • 3.6 条件装配Bean

    Bean初始化前 xff0c 对某些属性进行校验 xff0c 满足校验才去装配数据源 为了处理这样的场景 xff0c 需要用到 64 Conditional注解 xff0c 同时需要配合另外一个接口Condition xff08 org s
  • 3.7 Bean的作用域

    isSingleton方法如果返回true xff0c 则Bean在IoC容器中以单例存在 xff0c 这也是Spring IoC容器的默认值 xff1b 如果isPrototype方法返回true xff0c 则当我们每次获取Bean的时
  • 3.8 使用@Profile

    在企业开发的过程中 xff0c 项目往往要面临开发环境 测试环境 准生产环境和生产环境的切换 xff0c 每一套的上下文是不一样的 xff0c 它们有各自的数据库资源 Profile机制 xff1a 实现各个环境之间的切换 假设存在dev