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配置
配置文件优先级如下(后面的覆盖前面的)
- jar包内的application.properties/yml
- jar包内的application-{profile}.properties/yml
- jar包外的application.properties/yml
- 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 表示列名࿱…...
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语言提供了多种循环结构,包括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 初学主题的系列文章,用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python,这是一个紧凑的学习计划。但并不是不可完成的。第二天开始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语句日期格式问题
项目场景: 提示:oracle中sql语句日期格式: 如:to_date(‘2023-01-01 13:14:20’,‘yyyy-MM-dd HH:mm:ss’) //错误写法 问题描述 改变一:24小时制 to_date(‘2005-01-01 13:14:20’,‘yyyy-MM-dd HH24:mm:ss’) //错…...
Vue实现面经基础版案例(路由+组件缓存)
一、面经基础版-案例效果分析 1.面经效果演示 2.功能分析 通过演示效果发现,主要的功能页面有两个,一个是列表页,一个是详情页,并且在列表页点击时可以跳转到详情页底部导航可以来回切换,并且切换时,只有…...
uniapp打开外部链接方式
uniapp打开外部链接方式 1、H5,打开方式 window.location.href url 2、APP,打开方式 plus.runtime.openURL(url)...
SecureCRT安装、注册教程
SecureCRT保姆级安装教程!!! 安装包与注册机自取。 链接:https://pan.baidu.com/s/1IrFkHlrtCoc67QnQ_z1TWQ?pwdt25m 提取码:t25m 一 前期准备 1.1 关闭病毒查杀(如果有其他杀毒软件也要关闭࿰…...
音乐免费下载mp3格式+音频格式转换+剪辑音频+合并音频教程
1.在qq音乐网页版搜索想要的歌曲 qq音乐网站:https://y.qq.com/ 如果你是vip可以直接下载vip的歌曲,如果不是选择不是vip的歌曲进行第一步的操作 2.点击播放进入页面后F12拿到音频地址 然后双击src里面的音频地址复制 网页新标签打开赋值的这个链接&a…...
腾讯云16核服务器配置有哪些?CPU型号处理器主频性能
腾讯云16核服务器配置大全,CVM云服务器可选择标准型S6、标准型SA3、计算型C6或标准型S5等,目前标准型S5云服务器有优惠活动,性价比高,计算型C6云服务器16核性能更高,轻量16核32G28M带宽优惠价3468元15个月,…...
什么是屏蔽机房?
屏蔽机房是一种用于保护数据中心设备的安全和可靠的措施。通过屏蔽机房,可以防止电磁干扰、防止物理入侵以及提供更好的隔离和安全性。下面是一些关于屏蔽机房的常见做法: 电磁屏蔽:为了防止电磁干扰对数据中心设备的影响,可以在屏…...
wsl2 ubuntu22.04安装docker
1. 安装 docker 官网的步骤一步一步安装即可 Install Docker Engine on Ubuntu | Docker Docs 2. 安装完毕之后,不出意外的话当你运行docker version或者其他命令的时候你会报如下错误: Cannot connect to the Docker daemon at unix:///var/run/docke…...
【Java SE】详解数组
前言:在C语言中我们已经学习过数组,接下来,我们再主要学习一下Java中的数组,在Java中,数组变得更加高效和使用。 1. 数组的基本概念 1.1 什么是数组? 数组:可以看成是相同类型元素的一个集合。…...
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 开发过程中,渲染和展示数据是不可或缺的一部分。Django 作为一个高效的 Python Web 框架,提供了一个强大且灵活的模板系统。本文将详细介绍 Django 模板系统的核心概念、语法和高级功能。 一、Django 模板系统简介 Django 的模板系统允…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
