<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[z284747的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/z284747</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; z284747]]></copyright><item><title><![CDATA[npm install 卡死排查实录：元凶竟是 ISP 的 IPv6 DNS 故障]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/163971625</link><guid>https://blog.youkuaiyun.com/z284747/article/details/163971625</guid><author>z284747</author><pubDate>Sat, 22 Aug 2026 11:57:16 +0800</pubDate><description><![CDATA[ISP 的 DNS 服务器对阿里 CDN 域名（npmmirror 系）在"默认查询"时只返回 AAAA（IPv6）记录，且结果不稳定（时好时坏、地址还会变）↓Node 解析到（无法连通的）IPv6 地址↓本机 IPv6 网络实际不通（黑洞，报文有去无回）↓npm 连接挂起 → connect ETIMEDOUT → 重试 → 再超时↓表现为：npm install 卡死十几分钟不动 / 随机失败↓。]]></description><category></category></item><item><title><![CDATA[入门 Ansible]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/161367611</link><guid>https://blog.youkuaiyun.com/z284747/article/details/161367611</guid><author>z284747</author><pubDate>Sun, 24 May 2026 19:24:21 +0800</pubDate><description><![CDATA[下载镜像链接：https://www.osboxes.org按照如下截图，下载 VirtualBox 的 Centos 版本这里可以看到这个 VirtualBox 的用户名和密码：使用 VirtualBox 安装 Centos 可以查找其他资料观看。]]></description><category></category></item><item><title><![CDATA[Claude Code 接入 DeepSeek]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/161345548</link><guid>https://blog.youkuaiyun.com/z284747/article/details/161345548</guid><author>z284747</author><pubDate>Sat, 23 May 2026 19:27:40 +0800</pubDate><description><![CDATA[DeepSeek 文档： https://api-docs.deepseek.com/zh-cn/quick_start/agent_integrations/claude_code安装完成后，可以输入下面的命令检查是否安装成功。]]></description><category></category></item><item><title><![CDATA[Python 规则：带默认值的参数必须放在不带默认值的后面]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/161172229</link><guid>https://blog.youkuaiyun.com/z284747/article/details/161172229</guid><author>z284747</author><pubDate>Sun, 17 May 2026 22:22:58 +0800</pubDate><description><![CDATA[Python 语法规定：带默认值的参数，必须放在 不带默认值的参数 后面！FastAPI 接口参数也必须遵守这个 Python 基础语法。有默认值的参数 → 必须放后面。无默认值的参数 → 必须放前面。]]></description><category></category></item><item><title><![CDATA[python 中 BaseModel 在这里有什么用？]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/161172209</link><guid>https://blog.youkuaiyun.com/z284747/article/details/161172209</guid><author>z284747</author><pubDate>Sun, 17 May 2026 22:21:44 +0800</pubDate><description><![CDATA[BaseModel 是 FastAPI 用来自动接收、校验、格式化 JSON 请求体的核心工具。它能让你不用手动解析 JSON，直接拿到一个干净、安全、类型正确的对象。你现在写的这段代码，就是 FastAPI 最标准、最推荐的注册接口写法！FastAPI 会自动把它转成 User 对象给你用。你的代码里，BaseModel 做了 4 件大事。编辑器会自动提示，不会写错单词，不会报错。全是 BaseModel 自动生成的！✅ 让代码更简洁、更安全。不用你写任何判断代码！✅ 自动接收 JSON。]]></description><category></category></item><item><title><![CDATA[解决IDEA运行Java程序jdk版本不匹配问题]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/161059656</link><guid>https://blog.youkuaiyun.com/z284747/article/details/161059656</guid><author>z284747</author><pubDate>Wed, 13 May 2026 22:32:40 +0800</pubDate><description><![CDATA[找到 Build, Execution, Deployment → Compiler → Java Compiler。Language level：选 8 - Lambdas, type annotations etc.如果上面的步骤设置完还是报错，那么重启 IDEA， 直接关闭 IDEA 再打开。找到自己的项目 → Target bytecode version  改成 8。Project bytecode version → 改成 8。按快捷键：Ctrl + Alt + Shift + S。]]></description><category></category></item><item><title><![CDATA[从踩坑到精通：PyCharm 2026.1 + FastAPI 虚拟环境全流程排坑指南]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/160961516</link><guid>https://blog.youkuaiyun.com/z284747/article/details/160961516</guid><author>z284747</author><pubDate>Sun, 10 May 2026 22:52:09 +0800</pubDate><description><![CDATA[从踩坑到精通：PyCharm 2026.1 + FastAPI 虚拟环境全流程排坑指南本文记录了我从创建项目到成功运行 FastAPI 的完整踩坑过程，解决了虚拟环境配置、依赖安装、代码报红、服务启动失败等一系列问题，希望能帮到同样在入门的小伙伴们。一、前言：为什么我写这篇博客？最近在学习 FastAPI 开发，用 PyCharm 2026.1 社区版创建项目时，遇到了一系列典型的新手问题：新建项目时找不到 FastAPI 模板。]]></description><category></category></item><item><title><![CDATA[VS Code 配置Java环境]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/156064750</link><guid>https://blog.youkuaiyun.com/z284747/article/details/156064750</guid><author>z284747</author><pubDate>Fri, 19 Dec 2025 00:34:44 +0800</pubDate><description><![CDATA[对于 Maven 项目：打开「终端」→ 执行mvn clean compile exec:java（需配置 pom.xml 的 mainClass）。关键插件：必装「Extension Pack for Java」，Maven/Gradle 项目按需装对应插件；点击「文件」→「打开文件夹」→ 选择包含pom.xml/build.gradle的文件夹；运行规则：单个文件直接打开运行，项目文件需打开根目录，等待依赖加载完成后再运行。场景 1：单个 Java 文件（无项目结构）点击代码右上角的「运行」图标；]]></description><category></category></item><item><title><![CDATA[git add . 添加超长文件名报错了怎么办？]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/156064653</link><guid>https://blog.youkuaiyun.com/z284747/article/details/156064653</guid><author>z284747</author><pubDate>Fri, 19 Dec 2025 00:09:47 +0800</pubDate><description><![CDATA[到文件本身）超过了这个限制，Git 无法处理这种超长路径的文件，因此报出 “无法索引文件” 的错误，直接导致 git add 失败。你现在执行 git add . 时，除了之前的 LF/CRLF 换行符警告，还遇到了 “Filename too long”（文件名太长） 的致命错误，导致 Git 无法索引这个 Java 文件，最终添加文件失败，你想解决这个问题。LF/CRLF 警告：和之前一样，只是 Windows 下 Git 自动转换换行符的兼容提示，非致命错误，无需处理；]]></description><category></category></item><item><title><![CDATA[Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.6.0:checkstyle xxx]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/155113721</link><guid>https://blog.youkuaiyun.com/z284747/article/details/155113721</guid><author>z284747</author><pubDate>Sat, 22 Nov 2025 00:46:08 +0800</pubDate><description><![CDATA[这个错误表示 Maven 检查风格插件 (maven-checkstyle-plugin) 版本 3.6.0 需要 Maven 版本 3.6.3 或更高，但你当前使用的 Maven 版本低于这个要求。]]></description><category></category></item><item><title><![CDATA[如何修改执行mvn -v 的时候输出的jdk版本]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/155113208</link><guid>https://blog.youkuaiyun.com/z284747/article/details/155113208</guid><author>z284747</author><pubDate>Sat, 22 Nov 2025 00:28:40 +0800</pubDate><description><![CDATA[我前面一直更新的是系统环境变量，然后一直没有效果，它依然使用的是更新之前的jdk版本。或者我直接删除用户环境变量的 JAVA_HOME变量，它就会使用我系统环境变量的配置了，因为用户环境变量比系统环境变量优先级更高。用户变量中设置了 JAVA_HOME=C:\Program Files\Java\jdk-11。系统变量中设置了 JAVA_HOME=C:\Program Files\Java\jdk-8。如果用户变量中没有设置，Maven 会回退到使用系统变量中的 JAVA_HOME。]]></description><category></category></item><item><title><![CDATA[idea teminal和 window cmd 输出java version不一致]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/155112167</link><guid>https://blog.youkuaiyun.com/z284747/article/details/155112167</guid><author>z284747</author><pubDate>Fri, 21 Nov 2025 23:05:09 +0800</pubDate><description><![CDATA[我的windows cmd 立即生效了，可以看到最新配置的jdk，但是我在idea中的terminal 却看到的是旧的jdk配置，即使我清除了idea的缓存和重启idea，依然没有用。同时，也请在Windows的CMD中输入相同的命令进行对比。修正环境变量：如果发现PATH中JDK 17的路径在JDK 11之前，请调整PATH变量中JDK路径的顺序，确保JDK 11的bin目录位于JDK 17之前。在 SDKs 选项下，查看已配置的JDK列表，确保没有残留的JDK 17配置被间接引用。]]></description><category></category></item><item><title><![CDATA[使用WebSocket实现跨多个服务器传输音频及实时语音识别]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/147984719</link><guid>https://blog.youkuaiyun.com/z284747/article/details/147984719</guid><author>z284747</author><pubDate>Thu, 15 May 2025 16:06:57 +0800</pubDate><description><![CDATA[该项目通过WebSocket实现了一个语音输入与处理系统，包含三个主要模块：A项目（React前端）、B项目（Java后端）和C项目（Node.js后端）。A项目负责获取用户的麦克风输入，并将音频数据通过WebSocket传输到B项目。B项目模拟语音识别功能，返回随机生成的识别文字给A项目，同时将音频数据转发到C项目。C项目将接收到的音频数据存储在内存缓冲区中，当用户停止讲话时，C项目将缓冲区的数据生成为.wav文件，并通过ffmpeg将其转换为.mp3格式。项目代码已上传至Gitee，分别位于两个仓库中：]]></description><category></category></item><item><title><![CDATA[使用JMeter 编写的测试计划的多个线程组如何生成独立的线程组报告]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/147771860</link><guid>https://blog.youkuaiyun.com/z284747/article/details/147771860</guid><author>z284747</author><pubDate>Wed, 07 May 2025 18:51:37 +0800</pubDate><description><![CDATA[我有一个测试计划，里面有两个线程组，如下：
添加了一个HTTP请求默认值：
然后我使用如下命令生成的可视化报告是两个线程组合并后的聚合报告。
但是我想要的效果是每个线程组有自己的独立报告，怎么办呢？首先在 线程组-百度1 下面的 聚合报告 中的右侧面板的 文件名 中输入要存放的 jtl 文件位置，我这里存放在 “D:\file\temp\jtl\百度1.jtl” 。在 线程组-百度2 下面的 聚合报告 中的右侧面板的 文件名 中输入要存放的 jtl 文件位置，我这里存放在 “D:\file\temp\jtl]]></description><category></category></item><item><title><![CDATA[使用JDK的数据校验和Spring的自定义注解校验前端传递参数的两种方法]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/147595889</link><guid>https://blog.youkuaiyun.com/z284747/article/details/147595889</guid><author>z284747</author><pubDate>Mon, 28 Apr 2025 21:45:11 +0800</pubDate><description><![CDATA[把@RequestHeader的required属性设置成false，这样即便请求头缺失，Spring 也不会立即抛出异常，而是会继续执行后续的自定义校验逻辑。当App_key或App_secret为空时，@NotEmpty注解会发挥作用，抛出相应的校验异常。当 App_secret 或 App_key 缺失的时候，代码会抛出 ConstraintViolationException 异常，所以我们需要在全局异常控制器里面捕捉该异常，然后对其进行处理即可。最后在接口方法的请求头参数上运用自定义的校验注解。]]></description><category></category></item><item><title><![CDATA[使用 SSE + WebFlux 推送日志信息到前端]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/147515184</link><guid>https://blog.youkuaiyun.com/z284747/article/details/147515184</guid><author>z284747</author><pubDate>Fri, 25 Apr 2025 16:32:44 +0800</pubDate><description><![CDATA[为什么使用 SSE 而不使用 WebSocket, 请看 SEE 对比 Websocket 的优缺点。我的架构如下：前端
后端中间件
后端服务[前端] → 打开模态框 → 发起SSE连接 → [后端中间件] → 转发请求 → [后端服务] → 查询日志信息
← 实时日志推送 ← (SSE流)        ← 捕获进程输出流       ← 返回实时日志流前端html代码：前端代码使用 bootstrap + jquery
前端js代码：
后端中间件和后端服务都需要引入 webflux 的依赖：
后端中间件]]></description><category></category></item><item><title><![CDATA[idea中运行groovy程序报错]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/147366374</link><guid>https://blog.youkuaiyun.com/z284747/article/details/147366374</guid><author>z284747</author><pubDate>Sun, 20 Apr 2025 15:46:55 +0800</pubDate><description><![CDATA[我在其他 groovy 脚本中运行如下代码。将 Gradle 改成 Idea 即可。和上面的解决方案一样。]]></description><category></category></item><item><title><![CDATA[编译Spring源码时遇到的错误]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/147345501</link><guid>https://blog.youkuaiyun.com/z284747/article/details/147345501</guid><author>z284747</author><pubDate>Sat, 19 Apr 2025 10:04:19 +0800</pubDate><description><![CDATA[在编译源码时遇到了如下错误：
​1. 检查网络连接与镜像源配置​​问题根源​：  错误信息显示UnknownHostException: repo.maven.apache.org，表明Gradle无法访问Maven中央仓库。​解决方案​：​检查网络​： 确认本地网络是否正常，尝试通过浏览器访问https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.7.2/，验证是否能下载该文件。1. 魔法上网我这里无法访问，但是]]></description><category></category></item><item><title><![CDATA[linux常用命令]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/147254373</link><guid>https://blog.youkuaiyun.com/z284747/article/details/147254373</guid><author>z284747</author><pubDate>Tue, 15 Apr 2025 17:19:17 +0800</pubDate><description><![CDATA[在Linux系统中，查询GPU信息（包括显存使用情况）的常用命令如下：这是NVIDIA官方提供的工具，可直接查看GPU的实时状态和显存使用情况，是最常用且最详细的命令。
输出示例：

关键字段说明：

Memory-Usage：显存使用情况（已用/总显存，如 ）。
GPU-Util：GPU利用率（如 ）。
Temp：GPU温度（如 ）。
Pwr Usage：当前功耗（如 ）。

扩展用法：

实时监控：

查询显存详细信息：



2. （通用命令，适用于所有GPU）
列出所有PCI设备信息，可快速查看GP]]></description><category></category></item><item><title><![CDATA[lombok的坑]]></title><link>https://blog.youkuaiyun.com/z284747/article/details/147112308</link><guid>https://blog.youkuaiyun.com/z284747/article/details/147112308</guid><author>z284747</author><pubDate>Thu, 10 Apr 2025 10:40:32 +0800</pubDate><description><![CDATA[在 IDE 中编译项目，查看 R 类的编译后的类文件（位于 target/classes 或 build/classes），确认是否存在 getCode()、getMsg()、getData() 方法。我使用lombok的@Data注解带来的坑。检查 Lombok 是否生成 Getter。我试了换成 @Getter 注解也没用。经排查，是lombok注解没有生效。]]></description><category></category></item></channel></rss>