7、SpringBoot_高级配置
一、配置高级
1.临时属性设置
1.1引出问题
-
如果目标电脑上8080端口已经使用,再次使用该端口会出现端口占用问题

-
解决方式
- 重新更换配置文件修改端口打包
- 通过临时属性配置新端口
- 更换配置文件
1.2添加临时属性配置
-
通过临时属性修改8080端口
java -jar 项目.jar --server.port=8081 -
添加web部分使用 dbug 日志
java -jar springboot-ssm-0.0.1-SNAPSHOT.jar --server.port=8081 --logging.level.org.springframework.web=debug java -jar springboot-ssm-0.0.1-SNAPSHOT.jar --server.port=8081 --logging.level.root=debug -
可以分别对
root,web,hibernate进行临时日志设置

2.属性加载优先级
-
文档地址
https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config
-
优先级说明

-
注意:从上往下优先级越来越高
-
开发中使用的是3,刚才使用命令行使用的是11
-
在开发中,会遇见自己定义属性名和系统变量名一致的情况,导致自己配置的数据被覆盖
user:name: sy -
实际取出来值是电脑用户名称值

-
以后如果你们再开发中,自己定义变量但是发现取出来的不是想要的值时,优先考虑属性优先级问题
-
3.开发环境使用临时属性设置
-
设置主流方式步骤

-
了解内容
public static void main(String[] args) {args[0] = "--server.port=9999";SpringApplication.run(SpringbootSsmApplication.class, args); } -
问题:如果需要修改的配置很多,那么使用这种手动输入的方式很容易出错,可以通过配置文件解决
4.配置文件分类
- 类路径下配置文件
- 开发人员使用
- 类路径下config目录下配置文件
- 项目经理、技术经理使用
- 程序包所在目录中配置文件
- 运维人员、架构师使用
- 程序包所在目录中config目录下配置文件
- 最高等级,技术总监
- 应用场景
- A 开发项目时候使用的是类路径下配置文件
- A 开发完成之后,需要部署到测试环境,需要修改配置
- 测试B测试出问题,A 需要去修改bug(需要把配置修改回来)
- 测试没问题之后,A需要再次修改生产环境的配置
4.1类路径下配置文件
-
类路径下配置文件:就是我们默认使用的配置文件,优先级是最低

4.2类路径下config目录下配置文件
-
类路径下config目录下配置

4.3程序包所在目录中配置文件
-
程序包所在目录中配置文件

4.4程序包所在目录中config目录下配置文件
-
程序包所在目录中config目录下配置文件

4.5通过临时变量设置配置文件
-
通过名称设置图示

-
通过具体路径设置具体文件

5.@ConfigurationProperties
5.1.回顾基础使用
-
绑定类
@Data @Component @ConfigurationProperties(prefix = "dbconfig") public class DbConfig {private String url;private String username; } -
配置文件
dbconfig.url=123123 dbconfig.username=sy -
加入如下的依赖,可以解决提示问题
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId> </dependency>
5.2配置第三方类
-
配置德鲁伊连接池
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.15</version> </dependency> -
配置三方bean
@Bean @ConfigurationProperties(prefix = "druid") public DruidDataSource dataSource(){DruidDataSource druidDataSource = new DruidDataSource();return druidDataSource; }
6.宽松绑定/松散绑定
-
如果你这样配置会报错
@Component @ConfigurationProperties(prefix = "dbConfig") public class DbConfig {private String url;private String username; } -
报错如下

-
宽松绑定
dbConfig.url=123123 dbConfig.user_name=sy db-config.PASSWORD=12345223123 db-config.home-address=bj@Data @Component @ConfigurationProperties(prefix = "db-config") public class DbConfig {private String url;private String username;private String password;private String homeAddress; }
7.常用计量单位绑定
-
配置时间需求
db-config.timeout=600 -
使用 Duration 表示时间
@DurationUnit(ChronoUnit.HOURS) private Duration timeout; -
使用DataSize来表示空间
@DataSizeUnit(DataUnit.MEGABYTES) private DataSize datasize;
8.检验
-
导入依赖
<dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId> </dependency> -
检验配置如下
@Max(value = 9999,message = "无效的配置") @Min(value = 80,message = "无效的配置") private int port;
9.数据类型转换
-
之前学生出现的一个问题

-
他的密码 010101

-
配置文件中,可以通过引号的方式解决
-
boolean 类型直接使用 true / false
相关文章:
7、SpringBoot_高级配置
一、配置高级 1.临时属性设置 1.1引出问题 如果目标电脑上8080端口已经使用,再次使用该端口会出现端口占用问题 解决方式 重新更换配置文件修改端口打包通过临时属性配置新端口更换配置文件 1.2添加临时属性配置 通过临时属性修改8080端口 java -jar 项目.jar…...
cocos2dx查看版本号的方法
打开文件:项目根目录\frameworks\cocos2d-x\docs\RELEASE_NOTES.md 知道引擎版本号的意义: 1.面试中经常被问到(面试官想知道你会不会查版本号,你会查也不一定会去看,如果你去看了说明你是一个有心人,或者想深入研究下…...
某高校的毕设
最近通过某个平台接的单子,最后Kali做的测试没有公开可以私聊给教程。 下面是规划与配置 1.vlan方面:推荐一个vlan下的所有主机为一个子网网段 连接电脑和http客户端的接口配置为access接口 交换机与交换机或路由器连接的接口配置为trunk接口---也可以…...
利用uvicorn、Starlette和pipeline将一个训练好的大模型发布成一个web服务
技术名词: 1、Starlette: 它是一个轻量级、高度可用性和可扩展性的Web框架,它专门为异步应用程序设计。 Starlette基于Python 3.6的异步/协程语法,具有快速响应性能和低延迟。你可以将它理解为Java的Spring。 安装:…...
贝赛尔曲线 - Vue3实现加入购物车抛物线效果组件
贝赛尔曲线 - Vue3实现加入购物车抛物线效果组件(可连续多个动画,动态回收DOM) 前言 在前几天的一次迭代中,我遇到了这么一个需求,模仿支付宝首页应用中心的编辑功能,支持编辑首页展示的应用,…...
AddressSanitizer failed to allocate 0xdfff0001000 (15392894357504) bytes解决方法
打开一个编译选项启用ASan的程序: AddressSanitizer failed to allocate 0xdfff0001000 (15392894357504) bytes然后程序启动失败。 原因: [cfe-dev] Question about Clang/LLVM addresssanitizer /proc/sys/vm/overcommit_memory是一个用于控制内存…...
Fortinet 2023上半年全球威胁态势研究报告:勒索软件检测成下降趋势,针对性攻击持续升温
近日,专注于推动网络与安全融合的全球网络安全领导者Fortinet(NASDAQ:FTNT),发布《2023上半年全球威胁态势研究报告》。报告显示,2023 年上半年勒索软件检出数量继续下降、高级持续性威胁(APT&a…...
MySQL ——多表连接查询
一、(左、右和全)连接概念 内连接: 假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来。A和B两张表没有主付之分,两张表是平等的。 关键字:inner join on 语句…...
前沿技术 --> 待定
一、可会可不会 1.1如何优雅的编写技术文档 网址: 如何优雅的编写技术文档? - YouTube...
Linux定时python脚本(crontab版本)
1.0 使用Linux系统命令 crontab 自带的定时命令2.0 crontab的使用 2.1 添加定时任务 crontab -e2.2 查看定时任务的完成情况 2.2.1 查看日志 tail -f /var/log/syslog | grep CRON 2.2.2 任务执行情况 grep CRON /var/log/syslog 2.3 定时任务的规则 每隔一分钟执行一次…...
修改 Ubuntu .cache 和 pip cache 默认路径
修改 Ubuntu .cache 和 pip cache 默认路径 非常不建议修改 .cache 默认路径,除非你知道修改后的影响。 执行下面命令进行修改, vi /root/.bashrc--- 追加 export XDG_CACHE_HOME/u01/.cache export PIP_CACHE_DIR/u01/.cache ---完结!...
【Java SE】Lambda表达式
目录 ♫什么是Lambda表达式 ♫Lambda表达式的语法 ♫函数式接口 ♫Lambda表达式的使用 ♫变量捕获 ♫ Lambda表达式在集合中的使用 ♪Collection的foreach(): ♪List的sort(): ♪Map的foreach() ♫什么是Lambda表达式 Lambda 表达式是 Java SE 8中一个…...
Kafka-UI
有多款kafka管理应用,目前选择的是github上star最多的UI for Apache Kafka。 关于 To run UI for Apache Kafka, you can use either a pre-built Docker image or build it (or a jar file) yourself. UI for Apache Kafka is a versatile, fast, and lightweight…...
Unity 制作登录功能02-创建和链接数据库(SQlite)
国际惯例:先看效果 1.SQlite是一种嵌入型数据库 在Unity开发游戏时使用SQLite有多种原因,以下是其中一些主要原因: 嵌入式数据库:SQLite是一个嵌入式数据库引擎,这意味着它不需要单独的服务器进程。这使得使用SQLite非…...
算法 岛屿数量-(递归回溯)
牛客网 BM57. 二维矩阵,值为1表示岛屿,0表示海洋,求海洋中岛屿数量。 解题思路: 遍历二维数组,值为1增加岛屿数量记数,同时对此位置进行单独递归遍历上下左右4个方向,将数组坐标范围内同时值为1的元素置…...
安卓恶意应用识别(番外篇)(Python并行(多线程or多进程)执行cmd)
前言 本人为了批量反编译,不得不涉及到批量执行,之前没有彻底理解有关于多线程的概念和python方法,现在只能一步一步尝试,并且实践,写本文以记录。 1. 进程与线程 1.1 什么是进程? 1.1.1 概念 进程是一…...
基于大语言模型扬长避短架构服务
秘诀: 扬泛化之长, 避时延之短...
初识网络编程
一、概述 地球村:亦称世界村,是通过电子媒介将世界紧密联系起来的形象表达,是信息网络时代的集中体现 TCP和UDP: TCP:打电话 -->连接 -->接了 -->通话 UDP:发送完即可 -->接收 计算机网络&a…...
轻松使用androidstudio交叉编译libredwg库
对于安卓或嵌入式开发者而言,交叉编译是再熟悉不过的操作了,可是对于一些刚入门或初级开发者经常会遇到这样的问题:如何交叉编译C++库来生成安卓下的so库呢? 最近有一些粉丝找到我求救,那么我最近刚好有空大致研究了下,帮他们成功编译了其中一个libredwg的C++库,这篇文章…...
【C++杂货铺】一颗具有搜索功能的二叉树
文章目录 一、二叉搜索树概念二、二叉搜索树的操作2.1 二叉搜索树的查找2.2 二叉搜索树的插入2.3 二叉搜索树的删除 三、二叉搜索树的实现3.1 BinarySearchTreeNode(结点类)3.2 BinarySearchTree(二叉搜索树类)3.2.1 框架3.2.2 in…...
AI智能体协作命令行工具squads-cli:多智能体编排与自动化实战
1. 项目概述:一个面向AI智能体协作的命令行工具如果你最近在关注AI智能体(Agent)的开发,尤其是多智能体协作(Multi-Agent Collaboration)这个方向,那你很可能已经听说过或接触过一些相关的框架。…...
TV Bro电视浏览器:如何在Android电视上享受完整网页浏览体验的终极指南
TV Bro电视浏览器:如何在Android电视上享受完整网页浏览体验的终极指南 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 您是否曾经尝试在智能电视上浏览网页…...
从LLM到智能体:基于推理循环的AI应用开发框架解析
1. 项目概述:一个面向推理任务的智能体框架最近在探索如何让AI模型更“聪明”地处理复杂任务时,我注意到了GitHub上一个名为“zyron-reasoning”的项目。这个由kaiogs07维护的仓库,其核心定位是一个用于构建和运行“推理智能体”的框架。简单…...
Augustus核心功能深度解析:路障、劳动力池与仓库管理
Augustus核心功能深度解析:路障、劳动力池与仓库管理 【免费下载链接】augustus An open source re-implementation of Caesar III 项目地址: https://gitcode.com/gh_mirrors/au/augustus Augustus是一款开源的Caesar III重制版游戏,它通过精准的…...
3分钟看懂无人机飞行日志:免费在线工具让数据说话
3分钟看懂无人机飞行日志:免费在线工具让数据说话 【免费下载链接】UAVLogViewer An online viewer for UAV log files 项目地址: https://gitcode.com/gh_mirrors/ua/UAVLogViewer 还在为看不懂无人机飞行日志而烦恼吗?那些密密麻麻的数据、复杂…...
Arm Neoverse CMN-650架构与编程实践详解
1. CMN-650架构概述Arm Neoverse CMN-650是一种基于Mesh拓扑的一致性互连网络,专为多核处理器和加速器系统设计。作为SoC内部的数据高速公路,它通过优化的路由算法和一致性协议,实现了高带宽、低延迟的核间通信。1.1 核心组件解析CMN-650由多…...
Windows任务栏图标自由拖拽:DriftX开源工具原理与编译部署指南
1. 项目概述:一个被低估的桌面美化利器如果你和我一样,是个对Windows桌面整洁度有强迫症的程序员或者效率追求者,那你肯定对系统自带的图标排列方式感到过无奈。任务栏上堆满了图标,桌面文件散落各处,想找个应用还得在…...
仅限首批200名DevOps工程师解密:DeepSeek内部CI/CD可观测性看板DSL语法与12个预置PromQL故障模式模板
更多请点击: https://intelliparadigm.com 第一章:DeepSeek CI/CD流水线的可观测性演进与战略定位 可观测性已从传统监控的“事后响应”范式,跃迁为DeepSeek CI/CD流水线的核心设计原则与战略支点。它不再仅关注指标(Metrics&…...
如何处理SQL递归层次结构更新_通过触发器维护父子关系
UPDATE父子路径未更新的主因是触发器中仅修改NEW.path而未递归更新后代path,且AFTER触发器中直接UPDATE同表会报错,需用临时表或存储过程中转,并同步维护level等衍生字段。UPDATE 时父子路径没更新,触发器里忘改 NEW.path递归结构…...
模块四-数据转换与操作——24. 数据分箱
24. 数据分箱 1. 概述 数据分箱(Binning)是将连续变量离散化的过程,将数值范围划分为多个区间,每个区间称为一个"箱"。分箱常用于将连续变量转换为分类变量,便于分析和建模。 import pandas as pd import nu…...
