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…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
