自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 CentOS 系统超详细Docker安装教程

1、安装Docker核心前提:服务器必须安装CentOS Linux系统;2、旧环境务必卸载干净,规避版本冲突报错;3、采用阿里云镜像源,彻底解决官方源下载慢、超时问题;4、安装后建议设置开机自启,保证服务长期稳定运行。后续会持续更新Docker镜像加速、容器部署、Compose编排等实用教程,有问题欢迎评论区交流!❤️。

2026-05-20 11:07:27 42

原创 一文读懂Docker是什么?核心原理、优势与核心概念详解(新手必看)

Docker是一套轻量化容器化解决方案,通过打包应用与环境,实现软件的标准化交付,解决环境不一致、部署繁琐、资源浪费等问题,是现代开发、运维、云原生的必备核心技术。镜像(模板)→ 容器(运行实例)→ 仓库(存储分发),掌握这三点,就入门了Docker的核心。后续我会持续更新Docker安装教程、常用命令、镜像打包、Docker Compose部署项目等实战教程,零基础可以持续关注!有问题欢迎评论区交流~

2026-05-19 10:59:56 478

原创 Java for循环跳出全场景解析

关键字作用范围执行效果适用场景continue当前循环跳过当前迭代,继续下一次过滤无效元素,不终止循环break当前循环(可结合标签控制外层循环)终止当前循环,后续迭代不执行某个条件满足,终止整个循环return整个方法终止方法,循环和后续代码都不执行条件触发,直接终止整个业务逻辑。

2026-04-23 15:33:40 445

原创 千万级数据安全归档——分批查询全流程深度解析

不用记复杂流程,掌握以下3句话,就能设计出企业级可用的分批查询方案:1. 分批查询 = 化整为零,把千万级、亿级的大查询,拆成上千次毫秒级的小查询;2. 必须用「主键ID区间查询」(ID > 上一批最大ID),绝对不能用「offset偏移量」;3. 每批查询结束后,记录当前批最大ID,作为下一批起点,实现无缝断点续查。这套分批查询流程,适用于金融、支付、ERP、司库系统等所有「亿级数据表归档」场景,安全、高效、稳定,可直接用于方案设计、架构文档撰写。

2026-04-22 15:47:18 389

原创 达梦数据库慢SQL优化实战:34秒→几十毫秒,索引设计思路全解析

慢SQL优化的核心不是「盲目建索引」,而是「精准定位瓶颈→贴合SQL逻辑设计索引→验证生效」。本文案例中,34秒的慢查询,本质是「全表扫描+显式排序」导致的,通过一套复合索引,既解决了全表扫描问题,又消除了排序开销,实现了300+倍的性能提升。等值条件放最前,关联字段放中间,返回排序放最后,无论是达梦、MySQL还是Oracle,只要是多表关联+等值查询+排序场景,都能直接复用这个思路,新手也能快速上手。如果你的项目中也有类似的慢SQL,或者对执行计划、索引失效场景有疑问,欢迎在评论区留言讨论~

2026-04-16 17:30:11 399

原创 客商数据清洗实操:不改动在用编码,安全完成5000条数据重传

将步骤3中筛选出的“无冲突、可安全更新”的del_前缀数据,改为abc_前缀,作为中间状态,便于后续批量更新,同时与未处理的del_前缀数据区分开。重复数据处理:对编码重复的数据,将原有正式数据状态改为“提交”,同步更新del_前缀的暂存数据,确保编码唯一。同时排查重复数据,为后续处理做准备。此时abc_前缀的数据均为无冲突数据,可直接去掉前缀,还原为正式编码,完成数据更新,且不影响原有在用数据。数据清洗与唯一性校验:去掉del_前缀后,与现有正式数据比对,筛选出无冲突、可安全更新的数据;

2026-04-15 19:32:32 340

原创 MySQL分库分表策略全解析(实战版)

拆分顺序:先垂直拆分(按业务/字段),再水平拆分(按行);先单库分表,再分库分表,逐步演进。策略选择:高频查询、数据均匀性要求高 → 哈希取模;按时间查询多、需扩容 → 范围分片;枚举值查询多 → 列表分片;复杂场景 → 复合分片。工具选择:中小项目 → Sharding-JDBC(轻量、易接入);大型集群 → MyCat/ShardingSphere-Proxy(强扩展性)。核心原则:分片键优先覆盖高频查询;尽量避免跨分片操作;扩容方案提前规划;优先保证数据一致性和业务可用性。

2026-04-07 16:21:30 370

原创 Spring AI 06 提示词(Prompt)全场景实战:从基础到高级模板用法

默认模板使用{}分隔变量,可自定义分隔符(如<>)避免冲突。/*** 5. 自定义模板分隔符:使用<>代替{},避免语法冲突*/// 自定义分隔符 < >.build())今天是<weather>吗?// 渲染变量.stream().content();✅适用场景:提示词中本身包含大括号{},避免变量解析错误。基础提示词.user()直接传入问题,快速调用系统提示词.system()设定AI角色,优先级最高动态提示词:使用{变量}.param()

2026-03-24 21:34:27 542

原创 Spring Ai 05 ChatClient Advisor 实战(日志、提示词增强、内容安全)

实现一个同时支持同步和流式调用的日志记录顾问,完整打印请求和响应信息。/*** 日志记录Advisor:记录AI调用的请求和响应信息* 同时实现CallAdvisor(同步)和StreamAdvisor(流式)接口*/@Slf4j// 定义Advisor名称,用于日志和调试@Override// 执行顺序(0为最高优先级)@Overridereturn 0;/*** 同步调用(call())的增强逻辑*/@Override。

2026-03-23 22:49:50 568

原创 Spring Ai 04 解决 ChatClient 初始化冲突问题

创建配置类,为每个智能体单独声明ChatClientBean,明确绑定对应的ChatModel/*** 声明Ollama智能体的ChatClient Bean* @param ollamaChatModel 自动注入的OllamaChatModel(由Spring AI自动配置)* @return Ollama专属ChatClient*/@Bean/*** 声明DeepSeek智能体的ChatClient Bean。

2026-03-23 21:41:18 290

原创 一文吃透 SQL 的 LEFT JOIN、RIGHT JOIN、INNER JOIN(附实例+避坑)

关系型数据库中,数据通常会分散在多个表中(比如用户表存用户信息,订单表存订单信息),表与表之间通过共同字段(如主键、外键)建立关联。连接查询(JOIN)就是通过这些关联字段,将多个表的列组合起来,提取出我们需要的完整数据。举个最常见的场景:我们有两张表,customers(客户表)和orders(订单表),后续所有实例都基于这两张表展开,先看表结构和测试数据,方便大家对照理解。

2026-03-13 09:50:56 551

原创 吃透 SQL 执行顺序:从根源解决 80% 的 SQL 坑

在日常开发中,很多程序员写 SQL 时总遇到 “字段不存在”“聚合函数报错”“别名用不了” 等问题,排查半天却找不到原因 —— 核心症结往往是混淆了 SQL 的书写顺序和执行顺序。本文将从底层逻辑拆解 SQL 执行顺序,结合实战案例帮你彻底搞懂,从此写 SQL 少踩坑、性能更优。

2026-03-12 17:19:57 424

原创 Spring AI 03 配置Java程序并试运行

Spring AI 基于 ‌‌ 构建,而 Spring Boot 3.x 本身要求 Java 17+,因此 ‌‌ 等低版本,所以要保证自己的java环境是17及以上的。

2026-03-09 16:33:17 129

原创 安装Ollama更改地址

Ollama安装建议:由于软件占用5-6GB空间,建议将默认安装路径从C盘改为其他盘符(如E:\Ollama)。安装时需在OllamaSetup.exe所在目录打开cmd终端,执行命令指定安装路径。此外,可通过设置用户环境变量OLLAMA_MODELS来自定义模型存储位置,避免占用系统盘空间。这种方法能有效解决C盘空间不足的问题。

2026-03-04 21:45:34 66

原创 Spring Ai 02 本地部署大模型

本文首先介绍了中文LLM模型的评测对比资源(GitHub链接),然后重点分析了四种主流本地部署模型引擎(Ollama、vLLM、LMStudio、TensorRT-LLM)的核心优势、Java集成难度和适用场景。其中详细说明了Ollama的安装使用流程,包括官网下载地址、常用命令(版本查询、模型启动/停止、列表查看等),以及基础使用方法示例。Ollama以其简单易用、模型丰富和跨平台特性成为快速原型开发和个人项目的优选方案。

2026-03-02 21:38:38 351

原创 Spring Ai 01 五大核心技术详解

SpringAI的核心技术主要包括:1)大语言模型(LLM),基于Transformer架构,通过预训练和微调实现语言理解和生成;2)提示词工程,通过清晰、结构化的指令优化AI输出;3)智能体技术,整合LLM、感知系统和执行器实现自主决策;4)检索增强生成(RAG),通过外接知识库提高回答准确性;5)模型控制平台(MCP),标准化AI工具交互协议。这些技术共同构成了SpringAI的核心框架,支持多样化的AI应用场景。

2026-02-28 23:22:26 1027

原创 session,token,cookies到底有什么区别和联系

session存储于服务器,可以理解为一个状态列表,拥有一个唯一识别符号sessionId,通常存放于cookie中。服务器收到cookie后解析出sessionId,再去session列表中查找,才能找到相应session,依赖cookie。cookie类似一个令牌,装有sessionId,存储在客户端,浏览器通常会自动添加。token也类似一个令牌,无状态,用户信息都被加密到token中,服务器收到token后解密就可知道是哪个用户,需要开发者手动添加。

2026-02-02 21:45:00 618

原创 HttpServletRequest的header里到底都有什么值???

这类是开发中根据业务需求添加的头Header 键名示例值含义adminToken后台管理系统的身份令牌token通用的用户身份令牌versionv1.0接口版本号设备类型的 Header 分为通用标准头请求专属头自定义头三类,标准头是 HTTP 协议规定的,自定义头由业务自行定义。(请求体格式)、User-Agent(设备标识)、/ 自定义token(身份认证)、Host(目标主机)。实战技巧:通过遍历所有 Header,request.getHeader("键名")

2026-01-30 10:43:11 691

原创 HttpServletRequestl类的常用方法

1、是封装客户端 HTTP 请求的核心对象,由 Servlet 容器自动创建,无需手动实例化。2、核心用途:获取请求参数、请求头、请求行信息,以及作为请求域对象共享数据。3、关键注意:POST 请求需提前设置编码解决中文乱码,请求域数据仅在当前请求有效,转发可共享、重定向不可共享。

2026-01-29 21:42:49 923

原创 在真实的项目中怎么使用git来上传你的代码?

我始终觉得把代码推送到远程仓库是一件极具仪式感的事,因此每次 push 前都会严格校验,确保代码逻辑无误、运行正常,唯有如此,才能让上传的代码为生产环境的稳定运行筑牢基础。

2026-01-28 17:34:35 620

原创 在真实的项目管理中,一般有几个环境?

在真实的企业级项目管理(尤其是研发、部署全流程)中,核心主流是 4 个基础环境但实际会根据项目规模、企业管控要求、行业合规性(如金融、政务),衍生出5-7 个细分环境,核心是为了在 “开发效率” 和 “线上稳定性” 之间做平衡,避免开发、测试、上线各环节的环境污染和风险。

2026-01-28 16:50:18 538

原创 == 和 equals 区别是什么?

Integer类在-128 到127之间做了缓存,所以新建的时候会在常量池中直接寻找,超出这个范围就需要new一个了。String在第一次会将它存储到常量池中,再次创建时需要先在常量池中寻找,如果有直接服用,没有才会new。首先==在基本类型中比较的是值是否相等,在对象中比较的是他的引用是否相等,其实就是两个地址是否一样。有一个比较热的考点 就是Integer类和String类的==比较 如下图。而equals主要用于两个对象之间,用于检测一个对象是否等于另一个对象的值。看object类中的实现。

2024-10-11 11:23:58 329

原创 力扣24. 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。看到题目后使用虚拟节点,就不需要考虑第一个节点的特殊性了。根据这个步骤就可以写出代码了。

2024-09-29 20:51:49 293 1

原创 力扣704.二分查找

如果目标值存在返回下标,否则返回。个元素有序的(升序)整型数组。

2024-09-23 21:30:41 276

原创 vue入门配置

该文件是用来展现页面的 但是这不是单页面应用,所以在<template>中加入<router-view>就可以在页面展示。每创建一个页面就需要在router包下的index.js中注册。

2024-08-27 10:29:20 456

原创 力扣135.分发糖果

n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到1个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的最少糖果数目。

2024-07-18 21:26:12 320

原创 力扣238. 除自身以外数组的乘积

所以我们可以创建一个数组来存储后缀乘积,创建一个answer数组第一遍存储前缀,第二遍存储答案。之中任意元素的全部前缀元素和后缀的乘积都在。之中任意元素的全部前缀元素和后缀的乘积都在。之外其余各元素的乘积。时间复杂度内完成此题。

2024-07-08 22:32:42 245

原创 力扣380:O(1) 时间插入、删除和获取随机元素

/ 由于 2 是集合中唯一的数字,getRandom 总是返回 2。// 向集合中插入 2。// 从集合中移除 1 ,返回 true。// 向集合中插入 1。// getRandom 应随机返回 1 或 2。// 返回 false ,表示集合中不存在 2。// 2 已在集合中,所以返回 false。你必须实现类的所有函数,并满足每个函数的。

2024-07-08 21:54:18 459

原创 力扣274. H 指数

给你一个整数数组citations,其中citations[i]表示研究者的第i篇论文被引用的次数。计算并返回该研究者的h指数。

2024-07-08 21:20:09 268

原创 力扣13. 罗马数字转整数

数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。说明白就是如果当前数字比前一个大就减去前一个数字,如果小就加上这个数字。给定一个罗马数字,将其转换成整数。,即为两个并列的 1。

2024-07-06 23:10:44 350

原创 力扣45. 跳跃游戏 II

跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1步,然后跳 3步到达数组的最后一个位置。向前跳转的最大长度。生成的测试用例可以到达。处,你可以跳转到任意。

2024-07-06 22:43:03 242

原创 力扣55. 跳跃游戏

给你一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。

2024-07-06 21:36:33 220

原创 力扣122. 买卖股票的最佳时机 II

随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。

2024-07-06 20:54:03 644

原创 力扣121. 买卖股票的最佳时机

在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。买入这只股票,并选择在。

2024-07-05 22:07:04 624

原创 力扣189. 轮转数组

看给的数据,可以得出每一个换的位置都是 (i+k)%n的位置,所以只需要创建一个新数组,然后给他赋值即可。向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。

2024-07-05 21:40:32 276

原创 力扣169. 多数元素

采用摩尔投票法,核心就是正负抵消,如果有众数,则vote肯定>=0。你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。由题意可知,该题是需要找出众数。

2024-07-05 21:13:24 256

原创 力扣80. 删除有序数组中的重复项 II

删除重复出现的元素,使得出现次数超过两次的元素。并在使用 O(1) 额外空间的条件下完成。看到题目第一个想到的就是快慢指针法。不要使用额外的数组空间,你必须在。,返回删除后数组的新长度。

2024-07-05 20:43:54 176

原创 在若依平台中下拉框的数据回显

在若依平台中下拉框的数据回显

2024-06-18 19:55:05 1219

原创 在idea中配置gitee仓库并上传

在idea中直接连接git仓库并上传

2024-06-18 19:44:21 529

原创 若依框架页面新增时,富文本加入图片保存时出现:JSON parse error: Unexpected character (‘/‘ (code 47))...错误的解决方案

在使用若依框架的富文本框新增时,如果插入一个图片的时候会出现一个JSON parse error: Unexpected character ('/' (code 47)): maybe a (non-standard) comment?

2024-06-17 09:18:14 1923

springai的项目文件

springai的项目文件

2026-03-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除