当前位置: 首页 > 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 的模板系统允…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...