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…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
rm视觉学习1-自瞄部分
首先先感谢中南大学的开源,提供了很全面的思路,减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接:https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架: 代码框架结构:readme有…...
