- 博客(202)
- 收藏
- 关注
原创 Spring 中的 @PostConstruct:Bean 初始化完成后的最后一道关卡
很多后端同学在做系统初始化、缓存预热、任务注册、数据加载时,都会遇到一个问题:我怎么才能确保 Spring 的 Bean 都已经准备好了?答案就是今天的主角:@PostConstruct。
2026-01-06 21:13:40
484
原创 前后端文件下载完整实战:从响应头到 Blob
在开发时,一个绕不开的功能就是:「用户一键下载自己生成的项目代码」这篇文章我结合真实项目代码,完整拆解一套前后端协作的文件下载方案。
2026-01-05 23:08:26
751
原创 为什么我的GetMapping不能配@RequestBody?
/ Spring会自动将URL参数绑定到UserQuery对象的属性注意:这里没有用@RequestBody注解!遵守规范:GET用于获取数据,POST用于提交数据简单查询用GET:参数少时用@RequestParam或对象自动绑定复杂查询用POST:参数复杂或需要请求体时用POSTAPI设计一致性:保持团队内的统一标准文档清晰:在API文档中明确说明参数传递方式一个完整的最佳实践示例// 简单查询:GET + URL参数// 复杂搜索:POST + RequestBody。
2025-12-30 20:59:26
612
原创 几种分页方式的核心原理、优缺点及适用场景
这是最直观、最常见的分页方式。工作机制:数据库需要先扫描并排序所有匹配的行,然后跳过前 OFFSET 条记录,最后返回 LIMIT 条记录。
2025-12-29 20:28:37
362
原创 告别效率瓶颈!这三款开发神器,用过都说真香
刚拿到设计稿需要图片占位符时,还在用纯色方块吗?代码合并前的人工比对,是否让你眼花缭乱?容器管理总是依赖命令行,有没有更直观的方式?这些问题,三个免费工具就能彻底解决。“这个功能我们需要占位图,越快越好!“这两段代码到底哪里不一样?我看了一个小时了!“服务器上的容器状态怎么样?得SSH进去看看…”作为开发者,你是否也经常面临这些场景?今天给大家介绍三款能够极大提升开发效率的免费工具——PicSUM:DEV、Diffchecker和Portainer。
2025-12-28 21:49:58
690
原创 npm包-serve包使用
serve是一个流行的静态文件服务器的单页应用(SPA)支持工具,由Vercel开发维护,主要用于在本地开发环境中快速启动一个静态服务器来预览网站或Web应用。全局安装serve,停止启动,杀掉进程,
2025-12-26 10:26:56
185
原创 N+1:程序员必知的“性能杀手”
N+1查询问题是ORM框架(如Hibernate、MyBatis等)中常见的性能问题。当需要获取主实体及其关联的多个子实体时,如果不进行优化,会执行:1次查询:获取主实体列表N次查询:为每个主实体单独查询关联数据结果就是执行了 1 + N 次数据库查询。例如:1、查询用户及其所有订单产生N+1问题SQL执行过程,
2025-12-24 20:30:05
291
原创 SSE技术原理及应用场景详解
*Server-Sent Events(SSE)**是一种允许服务器向客户端实时推送更新的技术。与之前讲到的不同,SSE 基于,提供了一种简单的方式来实现服务器到客户端的。
2025-12-21 22:08:47
579
原创 什么是持续集成CI,与DevOps关系
持续集成是一种软件开发实践,其核心在于开发人员会频繁地(通常每天多次)将他们的代码更改集成到共享的主干分支中。每次集成都通过自动化的,以便尽早发现和修复错误,从而提高软件质量并缩短交付周期。你可以把它理解为软件开发中的 “频繁、自动化质检” 流程。
2025-12-20 13:14:58
835
原创 Mock服务是什么?
在开发开始前,前后端或服务间共同商定好交互的 “合同”。这个合同就是接口规则,通常包含:接口地址(Endpoint):请求方法(Method):查询参数(Query Params):e.g.,?请求体(Body): 对于POST/PUT,定义JSON结构。返回数据(Response Format & Data):状态码(Status Code):响应体(Body): 定义成功和失败的返回结构。// 成功 200"code": 0,"data": {"id": 123,"name": "张三",
2025-12-18 21:01:44
844
原创 解决Fatal error in launcher: Unable to create process using,D:xxxx, E:xxxx;的问题
修复Conda的PowerShell钩子,找到并编辑conda-hook.ps1文件,路径为F:\Lenovo\anaconda3\shell\condabin\conda-hook.ps1,打开可以看到还是D盘,修改为F盘。❗️执行pip install xxx,安装某个包的时候出现报错,显示为我有两个盘的地址,保存后重新打开powershell,可以看到不报错,执行pip 命令,成功解决。进行了许多方法, 例如删除pip重新安装pip,重新安装python,都不行,
2025-11-28 16:38:06
382
1
原创 打开android studio2022版本出现的报错nternal error. Please report to https://code.google.com/p/android/issues
最后发现是自己的缓存没有删除赶紧,缓存里面有许多版本的,例如25版本,22版本的。然后就会生成当前安装这个版本的内容,上述操作不会删除SDK,删除后,就成功打开了!
2025-11-21 02:21:21
153
原创 【HelloAgent零基础入门】day3
安装配置.env文件,在第一章用过这就需要调用外部工具,需要网页搜索工具,选择SerpAPI,通过API提供结构化的Google搜索结果。安装,然后在官网注册一个免费账户获取API密钥并保存。(注意注册需要确认邮箱和手机号)(1)实现搜索工具的核心逻辑名称描述:描述工具用途执行逻辑第一个工具是Search函数,接收查询字符串并返回搜索结果。(2)构建通用的工具执行器使用一个统一的管理器来注册和调度这些工具,创建类。import os。
2025-11-14 11:05:21
980
原创 【HelloAgent零基础入门】day2
即在计算出注意力得分矩阵后,在进行归一化之前,应用一个掩码,将所有位于当前位置之后(即目前尚未预测到)的词元对应的分数,替换为一个非常大的负数,经过Softmax函数式,这些位置的概率就会变成0,保证了模型在预测下一个词时,能且仅能依赖它已经见过的、位于当前位置之前的所有信息,确保了预测的公平性和逻辑的连贯性。因此引入了位置编码。Temprature,控制模型输出随机性与确定性的关键参数,当T变小,分布更加陡峭,高概率项权重进一步放大,当T变大,生成更多样但可能出现不连贯的内容。用连续向量来表示词。
2025-11-12 14:22:02
989
原创 【HelloAgent零基础入门】day1
了解发展进程,并理解什么是Agent:让AI不仅仅是一个有问必答的工具,而是成为一个能自主规划、调用工具、解决复杂问题的行动者。MSA多智能体系统本项目重点是应用和构建。项目章节划分:基础篇单体篇高级篇实战篇展望篇code文件夹里存放了项目代码。智能体被定义为任何能够通过传感器感知其环境,并自主地通过执行器采取行动以达成特定目标的实体。环境:摄像头、麦克风、雷达或各类应用程序编程接口API返回的数据流,都是其感知能力的延伸。
2025-11-10 18:38:40
734
原创 DHCP协议
DHCP协议是动态主机配置协议,Dynamic Host Configuration Protocol。是一种网络管理协议,用于自动分配IP地址和其他网络配置参数给网络中的设备。DHCP工作过程,经历四次握手:发现、提供、请求、确认。
2025-10-18 13:59:45
99
原创 could not find a declaration file for module vue-cropper解决
官方文档:https://www.npmjs.com/package/vue-cropper。typescript vue3 环境下 安装新版的 vue-cropper。解决办法,寻找安装目录,
2025-10-05 22:14:48
156
原创 计算溢出了解
为什么会发生溢出,这是因为计算机使用固定数位的二进制表示数字。超出这个范围,高位比特就会被截断,只保留低比特。计算溢出指的当计算机执行算术运算时,产生的结果超出了该数据类型所能表示的范围,导致结果不正确,
2025-09-29 13:47:26
227
原创 原型模式了解
核心思想:通过复制一个已有对象来创建新的对象,而不是通过新建类的方式。通过原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。原型模式,创建型设计模式。
2025-09-26 22:23:02
294
原创 611.有效三角形的个数
对于a,b,c,我们可以枚举前两个数a,b的下标i,j,然后对于第三个数c的下标k进行二分查找,找出满足条件的k的范围区间,然后累加即可。将j右移一个位置,并不断尝试向右移动k,使得k是最大的满足nums[k] < nums[i] + nums[j]的下标。假设只固定i,则随着j的增加,不等式右侧的nums[i] + nums[j]也是递增的,满足条件的k也是递增的,则可以通过排序使得三条边:a,b,c,中的a + c >b, b+c > a,则只需要判断a+b > c即可。最直观的方法,使用暴力循环。
2025-09-26 15:23:53
403
原创 2197. 替换数组中非互质数
因此可以用一个栈进行维护,依次入栈,假设新建来的元素b,与栈中a满足非互质数,则进行替换:出栈,然后将最小公倍数入栈,b所在的位置+1。例如测试用例:[31,97561,97561,97561,97561,97561,97561,97561,97561]知道为什么报错吗,因为假设当前数非互质数,下一个数也是非互质数,则没有连续处理的情况。掌握最小公倍数的实现方法,知道最小公倍数 = 两数绝对值的乘积 / 最大公约数。下面是修改的代码:可能会出现a* b溢出的情况,使用long类型。
2025-09-16 21:32:47
211
原创 966. 元音拼写检查器
假设有多个query,可以对wordList进行预处理,因为wordList是固定的。可以这样想,假设给定一个query,我们可以按照上述逻辑进行判断。分析题目,给定的wordlist其实也是一个个的单词,不是很长的字符串。这里对于给定的query,要进行查询。总体时间复杂度O(n+m)。
2025-09-15 11:20:39
477
原创 this application failed to start because no Qt platform plugin could be initialized. Reinstalling...
打开Anaconda Navigator时候报错“this application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem”则找到F:\application\anaconda3\Library\plugins目录下的platforms文件夹,将该文件夹复制一份到安装目录下,即可打开。
2025-09-13 18:47:03
245
原创 第10章 网络与信息安全基础知识(2)
数据通信资源共享:软件资源共享和硬件资源共享负载均衡高可靠性通信子网对应于OSI中的低三层(物理层,数据链路层,网络层),资源子网对应于OSI中的高三层(会话层,表示层,应用层)。局域网LAN域域网MAN广域网WAN物理层数据链路层网络层传输层会话层表示层应用层OSI/RM的第三层主要负责通信,为通信子网层。上三层为资源子网层。传输层起着衔接上下三层的作用。一定要熟悉这七层每一层的作用,数据链路层以帧为单位传送传输层及其以上以报文传输数据。
2025-09-11 16:50:40
883
原创 AI大模型行业了解
Function Call: 基于LLM的语言理解能力,通过理解语义,自主决策使用某项工具,并。必须要懂得算法原理:了解向量,了解模型底层的原理,例如RAG的原理(如何划分chunk大小)面试题:在当下的一个场景下,如何提高Function Call的成功率,如何做如何思考?Agent,将无状态输出的大模型,变成了有状态输出的逻辑大脑,目标也是工业化。更多趋势:多Agent协作(Multi-Agent Model)。每天思考不断测试大模型的能力,思考场景和业务逻辑。LLM的交互基本单元:一轮对话。
2025-09-09 15:46:04
165
原创 Docker容器部署前端Vue服务
默认从 Docker Hub 拉取的 nginx 镜像是基于 Linux 的。启动docker。拉取完镜像,创建一个存放项目的目录,假设是前端项目,使用进行打包。如果遇到了ts的报错,将前端项目打包好的dist文件夹放到新创建的目录。在项目文件夹下编写nginx conf配置文件,例如创建在项目文件夹下编写dockerfile文件,例如Dockerfile然后构建docker镜像,查看镜像是否创建成功,启动docker容器,。访问ip:9090,即可成功。
2025-08-08 19:27:59
429
原创 三类库对比
根据代码的来源和控制程度,通常将依赖库分为一方库(1st-party)、二方库(2nd-party)和三方库(3rd-party)三类。这三类库在开发流程、维护方式和协作模式上都有显著差异。
2025-08-01 12:50:36
653
原创 卫语句 Guard Clause
卫语句 Guard Clause 是一种编程模式用于在函数或方法开始时检查前置条件,如果条件不满足就提前返回或抛出异常。可以使代码更清晰、减少嵌套层次,并提高可读性。
2025-08-01 10:53:25
167
原创 windows电脑上重新启动MySQL服务
我现在电脑上的mysql服务的位置是D盘,但是我的D盘已经删除了,如何删除msyql服务,并重新启动F盘上的mysql。进入到新安装的mysql服务的bin目录下面。二:重新注册并启动MySQL服务。一:删除旧的MySQL服务。
2025-07-30 19:41:52
315
原创 1865.找出和为指定值得下标对
为了找出满足指定值得下标对,可以假设nums1[i]的值为num,从而tot-num就是要从nums2中找的的,可以事先维护一个哈希表,从而直接获取tot-num的出现次数。
2025-07-06 23:14:58
203
原创 2311. 小于等于 K 的最长二进制子序列
对于长度大于等于m的情况,最长可能子序列的长度至少是m-1。然后检查长为m的子序列中是否存在小于k的情况,如果存在则最长子序列长度可以是m,反之最长子序列长度为m-1。注意题目中的字符串的子序列是指从一个字符串中删除零个或多个字符后,不改变顺序得到的剩余字符序列。假设数值k的二进制有m位,则确保子序列长度不超过m,同时确保值不超过k。首先直接生成所有可能的子序列并进行检查是不可行的,因为时间复杂度会很高。任何长度超过k的二进制位数的子序列,值必定大于k。substring() 方法返回字符串的子字符串。
2025-06-27 11:42:48
246
原创 大模型API,检索增强生成Retrieval-Augmented Generation
借助API自动化处理一批任务。具体是获取API key,并将API key配置到环境变量。当然也可以查看一些“大模型API教程”进行使用。大模型插件:是一种软件组件,设计用于增强和扩展基础大模型的功能。除了官方插件,还可以自定义插件实现更多的功能。在大模型对话中使用\n进行分段。
2025-06-26 11:28:53
963
原创 SSNP: Stochastic subgraph neighborhood pooling for subgraph classification
介绍随机邻域池化及其各个组成部分,例图转换层,子图邻域池化,子图邻域采样。
2025-06-23 15:56:16
1005
【远程开发环境配置】VSCode通过SSH连接学校服务器并使用Conda配置个人开发环境详细指南
2025-05-26
《Android Studio 应用程序设计》,(第2版,微课版张思民),我们教学参考用的这本书,MyApplication包含了7,8个章节的安卓应开发案例和和实现
2024-11-29
强化学习Simple-Reinforcement-Learning-main
2024-06-14
用 tensor MF 实现顾客与餐馆推荐
2024-06-14
安卓实践:计算器、简单商城
2024-06-14
word中使用的Aurora插件
2024-03-28
python+django前后端智慧医疗系统
2024-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅