当前位置: 首页 > news >正文

springboot--外部环境配置

外部环境配置

  • 前言
  • 1、配置优先级
    • 配置文件优先级如下(后面的覆盖前面的)
    • 测试
  • 2、外部配置
  • 3、导入配置
  • 4、属性占位符

前言

场景:线上应用如何快速修改配置,并引用最新配置?
springBoot 使用配置优先级+外部配置 简化配置更新、配置运维
只需要给jar应用所在的文件夹放一个application.properties最新配置文件,重启项目就能自动应用最新配置

1、配置优先级

springBoot 允许将配置外部化,以便可以在不同环境中使用相同的应用程序代码
我们可以使用各种外部配置源,包括java Properties文件,yaml文件、环境变量和命令参数
@value可以获取值,也可以用@configurationProperties将所有属性帮i的那个到java object中
以下是springBoot属性源加载顺序,后面的会覆盖钱买你的值 由低到高 高优先级覆盖低优先级
1、默认属性(通过springApplication.setDefaultproperties指定的)
在这里插入图片描述

2、@propertysource指定加载的配置(需要卸载@Configuration类上才可生效)
在这里插入图片描述

3、配置文件(application.properties/yml等)
4、RandomValuePropertySource支持的random.*配置(如:@value(“$(random.int)”)
5、os环境变量|
6、java系统属性(system.getProperties())
7、JnD1属性(来自java:comp/env)
8、ServLetContext 初始化参数
9、ServletConfig初始化参数
10、SPRING_APPLICATION_JSON属性(内置在环境变量或系统属性的JSON)
11、命令行参数
在这里插入图片描述

12、测试属性,(@SpringBootTest进行测试时指定的属性)
13、测试类@TestPropertySource注解
14、Devtools设置的全局属性($HOME/.config/spring-boot)

结论:配置可以写在很多位置,常见的优先级顺序:
命令行>配置文件>springappliation配置

配置文件优先级如下(后面的覆盖前面的)

  1. jar包内的application.properties/yml
  2. jar包内的application-{profile}.properties/yml
  3. jar包外的application.properties/yml
  4. jar包外的application-{profile}.properties/yml

建议:用一种格式的配置文件,如果。properties和.yml同时存在,则。properties优先
所有参数均可以由命令行传入,使用–参数项=参数值,将会被添加到环境变量中,并优先于配置文件,比如java -jar app.jar --name=“String”:, 可以使用@Value(“$(name)”)获取

测试

打包成jar包
在这里插入图片描述
在这里插入图片描述
在外部设置配置文件
在这里插入图片描述
在这里插入图片描述

2、外部配置

springBoot应用启动会自动寻找application.properties和application.yaml位置,惊醒加载,顺序如下:
1、类路径
类的跟路径、类下/config包
2、当前路径(项目所在位置)
当前路径、当前下/config子目录、/config目录的直接子目录
在这里插入图片描述
在这里插入图片描述
在外部闯进config目录权重高于外面的application.properties文件
在这里插入图片描述
在这里插入图片描述

3、导入配置

#导入指定的配置
#spring.config.import=classpath:/aaa.properties#导入配置的优先级低于配置文件的优先级
#aaa=cccc

4、属性占位符

在这里插入图片描述

#属性占位符
haha=我的端口是:${server.port}

获取haha的值
在这里插入图片描述


在这里插入图片描述

相关文章:

springboot--外部环境配置

外部环境配置 前言1、配置优先级配置文件优先级如下(后面的覆盖前面的)测试 2、外部配置3、导入配置4、属性占位符 前言 场景:线上应用如何快速修改配置,并引用最新配置? springBoot 使用配置优先级外部配置 简化配置…...

『MySQL快速上手』-④-表的操作

文章目录 1.创建表2.查看表结构3.修改表4.删除表 1.创建表 语法格式如下: CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明: field 表示列名&#xff1…...

2023年10月Web3行业月度发展报告区块链篇 |陀螺研究院

10月是加密动荡的一月,围绕比特币现货ETF市场激荡不断,先有Cointelegraph“假消息”搅动市场以致合约遭血洗1.89亿美元,后有灰度、DCTT接二连三释放利好,市场情绪迅速激化,流动性显著提升,USDT 总市值突破8…...

【TES745D】青翼自研基于复旦微的FMQL45T900全国产化ARM核心模块(100%国产化)

板卡概述 TES745D是一款基于上海复旦微电子FMQL45T900的全国产化ARM核心板。该核心板将复旦微的FMQL45T900(与XILINX的XC7Z045-2FFG900I兼容)的最小系统集成在了一个87*117mm的核心板上,可以作为一个核心模块,进行功能性扩展&…...

初次给外贸客户发邮件范文

以下是一米软件给大家整理的一份初次给外贸客户发邮件的示例范文。请根据您的具体情况和需求进行个性化调整。 cssCopy code 主题:初次问候与合作机会 尊敬的[客户的名字], 我希望这封邮件能找到您并使您一切安好。我是[您的名字],代表[您的公司名]。我…...

C语言中的多种形式的循环结构

C语言提供了多种循环结构&#xff0c;包括for循环、while循环、do-while循环和foreach循环等。 //for循环 for (int i 0; i < 10; i) { printf("%d\n", i); } //while循环 int i 0; while (i < 10) { printf("%d\n", i); i; } //do-wh…...

7天入门python系列之第二天python 基础语法

第2天主要是学习Python的基础知识 编者打算开一个python 初学主题的系列文章&#xff0c;用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python&#xff0c;这是一个紧凑的学习计划。但并不是不可完成的。第二天开始python 基础知…...

【星海出品】flask 与docker

import os from flask import Flask, request from flask import Response, make_response, jsonify import cv2 import base64 import io import uuid from main import eye ​ app Flask(__name__)​ app.route(/, methods[GET, POST]) # 添加路由blend def upload_file():…...

Oracle的to_date()函数解决sql语句日期格式问题

项目场景&#xff1a; 提示&#xff1a;oracle中sql语句日期格式&#xff1a; 如&#xff1a;to_date(‘2023-01-01 13:14:20’,‘yyyy-MM-dd HH:mm:ss’) //错误写法 问题描述 改变一&#xff1a;24小时制 to_date(‘2005-01-01 13:14:20’,‘yyyy-MM-dd HH24:mm:ss’) //错…...

Vue实现面经基础版案例(路由+组件缓存)

一、面经基础版-案例效果分析 1.面经效果演示 2.功能分析 通过演示效果发现&#xff0c;主要的功能页面有两个&#xff0c;一个是列表页&#xff0c;一个是详情页&#xff0c;并且在列表页点击时可以跳转到详情页底部导航可以来回切换&#xff0c;并且切换时&#xff0c;只有…...

uniapp打开外部链接方式

uniapp打开外部链接方式 1、H5&#xff0c;打开方式 window.location.href url 2、APP&#xff0c;打开方式 plus.runtime.openURL(url)...

SecureCRT安装、注册教程

SecureCRT保姆级安装教程&#xff01;&#xff01;&#xff01; 安装包与注册机自取。 链接&#xff1a;https://pan.baidu.com/s/1IrFkHlrtCoc67QnQ_z1TWQ?pwdt25m 提取码&#xff1a;t25m 一 前期准备 1.1 关闭病毒查杀&#xff08;如果有其他杀毒软件也要关闭&#xff0…...

音乐免费下载mp3格式+音频格式转换+剪辑音频+合并音频教程

1.在qq音乐网页版搜索想要的歌曲 qq音乐网站&#xff1a;https://y.qq.com/ 如果你是vip可以直接下载vip的歌曲&#xff0c;如果不是选择不是vip的歌曲进行第一步的操作 2.点击播放进入页面后F12拿到音频地址 然后双击src里面的音频地址复制 网页新标签打开赋值的这个链接&a…...

腾讯云16核服务器配置有哪些?CPU型号处理器主频性能

腾讯云16核服务器配置大全&#xff0c;CVM云服务器可选择标准型S6、标准型SA3、计算型C6或标准型S5等&#xff0c;目前标准型S5云服务器有优惠活动&#xff0c;性价比高&#xff0c;计算型C6云服务器16核性能更高&#xff0c;轻量16核32G28M带宽优惠价3468元15个月&#xff0c;…...

什么是屏蔽机房?

屏蔽机房是一种用于保护数据中心设备的安全和可靠的措施。通过屏蔽机房&#xff0c;可以防止电磁干扰、防止物理入侵以及提供更好的隔离和安全性。下面是一些关于屏蔽机房的常见做法&#xff1a; 电磁屏蔽&#xff1a;为了防止电磁干扰对数据中心设备的影响&#xff0c;可以在屏…...

wsl2 ubuntu22.04安装docker

1. 安装 docker 官网的步骤一步一步安装即可 Install Docker Engine on Ubuntu | Docker Docs 2. 安装完毕之后&#xff0c;不出意外的话当你运行docker version或者其他命令的时候你会报如下错误&#xff1a; Cannot connect to the Docker daemon at unix:///var/run/docke…...

【Java SE】详解数组

前言&#xff1a;在C语言中我们已经学习过数组&#xff0c;接下来&#xff0c;我们再主要学习一下Java中的数组&#xff0c;在Java中&#xff0c;数组变得更加高效和使用。 1. 数组的基本概念 1.1 什么是数组&#xff1f; 数组&#xff1a;可以看成是相同类型元素的一个集合。…...

windows下直接把文件夹打包成war包

windows下直接把文件夹打包成war包 在windows中把一个文件夹打成war包 一般开发打war包时都是用MyEclipse或IntelliJ IDEA等直接导出war文件,这里介绍一种如何把一个文件夹打成war包的方式, 如下 例如要打包的文件在D:\testWar 打开 cmd命令行窗口, 进入文件所在目录D:\testWa…...

搭建嵌入式GDB调试环境以及VSCode+gdbserver 图形化调试

目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图…...

深入理解 Django 模板系统

概要 在任何 Web 开发过程中&#xff0c;渲染和展示数据是不可或缺的一部分。Django 作为一个高效的 Python Web 框架&#xff0c;提供了一个强大且灵活的模板系统。本文将详细介绍 Django 模板系统的核心概念、语法和高级功能。 一、Django 模板系统简介 Django 的模板系统允…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...