- 博客(382)
- 资源 (29)
- 问答 (8)
- 收藏
- 关注
原创 手写mcp server并用claude code调用,支持 stdio 和 sse协议
MCP(Model Context Protocol)作为 AI 与外部工具的通信协议,能让大模型精准调用自定义功能,摆脱官方工具的限制。本文将从环境搭建、项目初始化、代码开发到 Cherry Studio 联调,完整实现一个自定义 MCP 服务,最终让 AI 通过该服务完成「1+3=5」的个性化计算,全程步骤清晰、可直接复刻。
2026-04-07 15:22:04
248
原创 使用java控制claude code cli agent,利用启动参数打通claude code
今天领导派了个需求,需要打通claude code,需要获取claude code输出的内容,但是claude code cli是个黑窗口,要怎么打通呢?难道去取黑窗口的数据吗?非也,还有更好的办法, 让我们一起看看吧!参数作用--system-prompt "内容"覆盖默认系统提示--append-system-prompt "内容"追加自定义规则。
2026-03-27 16:14:26
312
原创 claude code 集成 Superpowers 让ai帮我们写代码
Superpowers 是将一整套接近专业团队的开发方法论固化下来的落地项目;让ai在写代码时能够自动遵循最佳的实践,先澄清需求、在编写计划、然后分布实现、最后测试收尾;且每一步都有检查点;避免claude code 采用 vibe coding 的方式去编写代码;导致越写越乱。
2026-03-24 15:45:48
526
原创 claude code 的 skill 用法以及skill 的高级特性
SKILL.md 文件必须严格遵循 YAML Frontmatter(元数据) + Markdown Body(正文) 的结构。明确告诉 AI 它现在的身份。描述方面:赋予 AI 一个具体的专家人设。示例:“你是一名严谨的财务审计员”或“你是一名资深的 Python 代码审查专家”。
2026-03-24 10:57:35
503
1
原创 claudeCode安装配置jetbrains教程
在 idea 低版本中是不支持 claude code 的,在插件官网中,有个预览版,最低版本要24.2以上;安装完成后就可以在右上角看到claudecode 的图标了, 点一下就会打开终端,可惜是个终端,而不是专门的聊天页面;接下来关闭原终端窗口,在打开一个新的终端,输入 :claude ,首次启动需要授权,选 Yes 选项即可。给他一个命令 :列出当前项目的接口文档,没毛病,可以正常使用了;没有意外的话应该会显示以下内容,这是因为你还没有配置模型;可以看到,添加以下三个环境变量即可实现对接。
2026-03-19 16:52:57
364
原创 AI智能体如何颠覆传统软件开发模式
今天使用了codebuddy 编辑器写了一个基于java8开发的springboot 后端项目,在整个过程中, 我一行代码都没写过,全都交给腾讯推荐的大模型实现,而我,只需要写清楚需要的是什么,要做什么即可,连背景都没交代清楚,只说了需要做的事情有哪些,ai 智能体根据我的需求就帮我写出了一个完整且可运行的项目,并且还添加了单元测试, 最后还帮我运行起来了,我调了一下项目中提供的接口,是完全可以正常访问的!不仅如此,ai 还帮我生成了详细的接口文档和运行、部署文档;让开发者可以知道下次如何运行、测试;
2026-03-19 14:42:49
374
翻译 JavaFX 2.0中文文档
有两种方式来创建用户界面,一种是通过XML文件来定义,另外一种则是直接通过java代码来创建. 这两种方式你都可以在网上搜到. 我们这里将使用XML的方式来创建大部分的界面。因为这种方式将会更好的将你的业务逻辑和你的界面开来,以保持代码的简洁。导入教程部分的源代码到你的 IDE(它是一个 Eclipse 项目,但是你可以稍作修改后使用其它的 IDE 例如 NetBeans 这样的)。新建和编辑的动作有点工作:我们需要一个自定义带表单的对话框(例如:新的Stage),询问用户关于人员的详情。
2025-12-22 10:44:40
115
3
原创 使用spring ai搭建sse通讯模式的mcp server服务
定义接口类, ToolComponent.java,这是mcp服务的接口入口,当有相关问题时,大模型就会调用这个接口获取想要的数据;大模型会自动调用 mcp 服务接口,并返回结果;创建父项目 mcp_demo,项目内只需要一个maven文件即可。运行后会调用 mcp_server 服务,返回以下信息表示成功;创建客户端,用来模拟大模型,先引入sse客户端依赖。最重要的一步,将刚刚的接口工具注册到spring。运行启动类,看到以下信息表示成功;看到右边的绿色点表示已连接成功;测试 mcp 服务是否联通。
2025-12-10 16:10:23
444
原创 windows安装kubectl.exe 并安装环境变量
将其存放某一目录下(本人路径为D:\java\k8s_client\kubectl.exe),并添加环境变量, 将所在目录加入到 Path 环境变量即可。打开命令行窗口,输入kubectl命令测试一下是否正常工作,看结果一切正常;通过以下命令测试下, 打印出图中的内容就表示成功。
2025-11-26 09:56:42
388
原创 springboot 解决过滤器 HttpServletRequest body IO流只能读取一次的问题
老手都知道过滤器的作用,但是如果想要打印请求的参数就有点难度了, url 上拼接的参数可以轻而易举的得到,调用方法就可以拿到;但是要拿body 体就没这么简单了,request 里面有个,这个流 是一次性的, 如果你在这里读出来,那么在控制层就拿不到body参数了;
2025-11-24 16:26:07
131
1
转载 JetBrain Intellij IDEA使用JAVA进行插件开发流程(基于2022、2023版本)
最近想接触idea插件开发相关的内容,但发现网上很多文章都比较过时了,并不适用于高版本的idea和jdk,踩了一些坑后,写一篇文章总结一下高版本idea开发插件的步骤吧。软件版本:JetBrain IDEA 2023.01JDK版本:JDK17需要注意的是,从IDEA2022.2开始,就要求用户必须要有Java17及以上的版本才可以进行插件的开发。IDEA版本和JDK版本的对应关系,需要注意的是,如果只是做普通开发的话,那么并没有对idea的版本要求,按实际项目来就行。
2025-09-18 10:03:23
293
原创 spring 使用三级缓存解决循环依赖详解
在spring 2.6之前的版本中,默认都是支持循环依赖的,也就不会报错,在2.6版本之后默认禁用了循环依赖;可通过以下方式开启循环依赖。
2025-07-29 17:04:59
497
原创 maven 打包报错 process terminated
出现这种问题一般都是直接使用 idea 自带的maven工具打包导致的报错,这种报错且没有报错内容,只显示。
2025-07-28 17:09:39
589
原创 解决 multiple definition of `main‘ 多重定义
经过以上报错信息可以解析出: main.cpp 的第15行已经有一个main函数了,在 CMakeCXXCompilerId.cpp 的第831 行还有一个main函数,其中 CMakeCXXCompilerId.cpp 是有cmake生成的;,在cmake编译中,使用GLOB_RECURSE宏,会递归遍历所有符合条件的文件,cmake编译生成的文件也会被搜索纳入文件名集合中,导致main重复定义问题。解决方法1:去掉GLOB_RECURSE,改为 GLOB。出现该问题是因为使用了cmake指令。
2025-07-28 17:09:01
658
原创 解决c++指针传递导致的重复释放问题
执行结果如下, 可以看到 2个指针地址是不同的,这也就证明了,在传参的过程中是发生了拷贝的;不信是吧,我们来做个实验,在main函数和release函数都打印下 pPointer 对象的地址,代码如下。先看这段代码,有多个地方都会释放 pPointer 的对象空间,但是为了防止重复释放,在第二次释放时做了判空处理;执行结果如下, 报错了,告诉我执行了2次free函数,也就是重复释放了;再次执行后,就不会报错了, 且main函数和release函数的 pPointer 对象地址也是相同的。
2025-07-28 17:08:24
510
原创 idea通过git筛选某个用户提交记录进行代码对比
每次需求开发都要先经过代码评审后才能上线,项目经理要求我们梳理出自己修改了哪些文件,而我们又是多个人在同一个分支开发,所以一个分支下就会有很多个提交;当我们通过右键项目 -> Git -> Show History 查看提交记录时就会发现有多个提交,进行分支对比的时候会将其他的人对比也展现出来;那没有一种方法,虽然是多人在同一分支开发,但是只查看我自己的提交记录呢?答案是有的,而且idea就能做到;
2025-07-28 17:07:52
1085
原创 解决访问 nginx 首页报错 404
这种情况一般都是 nginx root目录(根目录)未配置好导致的,那我们只要保证根目录下有html,或者指定一个有html的根目录就行啦!然后,我们进入到 nginx的根目录,创建一个html目录,在html目录下创建一个 index.html 文件。应该是能进入到nginx 的欢迎首页的;但是当访问后却显示了404页面,在 nginx.conf 配置文件中,在。正常情况下,启动nginx后访问地址。命令查看到,nginx 的根目录是。,那我们就把根目录指定为。然后再次启动就可以访问了。
2025-07-28 17:07:21
10306
原创 C/C++ 调用lua脚本,lua脚本调用另一个lua脚本
Main.lua , 被c/c++调用的luamodule.lua , 被lua调用的lua模块main.c , c语言入口。
2025-07-28 17:06:50
481
原创 解决 Clion idea远程开发代码报错 ‘xxx.h‘ file not found 但却可以编译运行的问题
今天使用 c 调用 lua,在linux安装了lua开发环境,但是开发的时候却找不到 lua.h 头文件;在linux 运行以下命令, 显示 LUA 5.3.0 版本,证明LUA的安装是没问题的;但是在 CLion idea 却显示然而,更奇怪的是,点绿色小三角运行的时候却是可以正常运行的;这个情况让我了解到,肯定是idea的问题,代码是没问题的;
2025-07-28 17:06:18
556
原创 解决 c++ 调用 c 函数报错: undefined reference to ‘xxx‘ 的问题
至于为什么不能这么干,这篇文章说的很清楚, 有兴趣的请戳: https://blog.csdn.net/challenglistic/article/details/130223118。以上代码中只有main.cpp 是c++文件,其他文件都是c语言的;在所有的.h文件头尾加上以下代码即可, 注意,只加头文件即可。文件默认使用的是 c 编译器,实际在编译的过程中,东西太多,我们只需要关注这一行,意思是找不到。文件默认使用的是 c++编译器, 而。加完后运行如下图,可以正常运行了。文件中的函数就会出错.
2025-07-28 17:05:33
590
原创 解决 clion 导入别人的项目 报错:Cannot generate into xxx It is already used for project xxx
在 clion idea中依次选择 Tools -> CMake -> Reset Cache And Reload Project。
2025-07-28 17:04:58
341
原创 MinGW-w64的安装详细步骤 c/c++的编译器gcc、g++的windows版,win10、win11
MinGW(Minimalist GNU for Windows) 是一个用于 Windows 平台的开发工具集,它提供了一组 GNU 工具和库,可以用于编译和构建本地的 Windows 应用程序。MinGW 的目标是在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序。gcc或者g++是c/c++的编译器,但是通常在 Linux 上才能用。如果要在windows上用,我们要借助MinGW使用它。
2025-07-28 17:03:29
801
原创 记录c++的一个天坑,模版的声明(接口)和定义(实现)必须放一起
之前写c语言,习惯了将声明和定义分开存放在不同的文件中,其中,声明放在头文件中,定义放在cpp文件中,这样一来方便后期维护,也算是一种规范,众所周知,c语言里面是没有模版这个概念的;发现在写模版类的时候,将声明和定义分开了,编译死活过不去;很明显,如果按照普通函数一样,将模板函数的声明与定义的分开,声明放在头文件,定义放在cpp文件实现,你会发现,编译没问题,但是在链接阶段会报”undefined references“。删掉即可,,然后将声明和定义都放在头文件即可;以下的Clion idea的报错。
2025-07-28 17:02:54
290
原创 解决c++运行时提示:first defined here (重复定义问题)
的38行也有个main函数,一个项目中不能同时有2个main函数,属于是重复定义了;想要解决这个问题很简单,只需要注释掉其中一个main函数即可,删掉也行。然后点击main.cpp里面的绿色三角形;文件的106行里面有个main函数,而。经过查看,确实是有2个main函数,我们主要看这一行即可。构建过程中也没有报错。
2025-07-28 17:02:20
850
原创 解决c++静态成员编译报错:‘xxx‘ is not a member of ‘xxx‘ 问题
今天自己用c++写了一个静态的工具类,用来处理字符串切割用的,发现写好之后,出现一个很奇葩的问题,死活编译不过去,就是一个劲地报错;但我看了代码这样写是没问题的;之后在运行,一切又正常了。
2025-07-28 17:01:45
418
原创 idea编译java代码时提示 java: 非法字符: ‘\‘、‘\ue104‘ 解决方案
网上有很多说是File > Setting > File Encoding,将IDE Encoding和Project Encoding 都设置为UTF-8就行,可是我试了不行;后来看到另外一个解答,File > Setting >Java Compiler,在 Additional comman line parameters(附加参数)中添加参数。最近编码完成后总是报非法字符,项目启动不起来,出现以下报错。
2025-07-28 17:01:15
995
原创 windows clion远程连接ubuntu运行调试nginx-1.22.1版本
但是这种方法只能一个个改,如果我们需要修改整个项目的编码格式,这种方式是不可取的,最好的解决方案就是直接在linux 系统上 clone 代码,而不是在 windwos 上 clone。在服务器上,ubuntu系统中,先使用vi命令打开脚本,然后通过以下命令即可查询到编码格式,如果为dos,那么我们需要修改编码格式,如果格式是unix,那么不要需要修改。一般出现这种情况,是操作系统编码格式不同导致的,在windows中是CRLF,在linux系统是LF,在macos是LR;
2025-07-28 17:00:44
601
原创 dataGrip以insert sql方式导出查询结果
除此之外也可以直接在表上右键 -> import/Export -> Export Data to file。然后选择sql Inserts 后点击 Export to file 即可导出。然后在选中全部,在复制后粘贴,这些数据就变成了sql格式了,是不是很神奇;当我选中全部复制后,在粘贴,结果是这样的,是csv格式的。这时候我们想要这些数据的 sql 格式,该怎么做呢?在弹出的窗口中选择 SQL Insert。默认情况下,查询到的结果是这样的。首先,点击右边的这个CSV。
2025-07-28 17:00:22
595
原创 idea编译报错 java: 非法字符: ‘\ufeff‘ 解决方案
在UTF-8编码中,BOM由3个字节组成(0xEF, 0xBB, 0xBF),用于表示文件采用UTF-8编码。然而,有些应用程序可能不支持带BOM的文件,或者BOM可能会被错误地解释为文件内容的一部分,因此在某些情况下,使用带BOM的编码方式可能会带来一些问题。出现这样的问题来源于这个BOM,一般在编写时候会给你默认添加这样的一个BOM头,是隐藏起来的,编译时候就会给出现编码混乱问题;然后用Notepad++ 打开文件,点击编码后发现,当前的编码是 UTF-8 带 BOM的,所以我们只需要点击下面。
2025-07-28 16:56:50
766
原创 wrk 压力测试工具使用教程
综合来看,这份结果表明在当前的测试条件下,系统平均每秒能够处理约 32796.50 个请求,延迟较低,但存在部分请求的延迟较高。“Socket errors: connect 0, read 0, write 0, timeout 8”:显示了在测试期间发生的套接字错误,包括连接错误、读取错误、写入错误和超时错误的次数。举例,以下使用了2个线程、并发数为100,运行30秒,线程超时时间为30秒,全局超时时间为40秒,来测试。“Latency”:延迟,这里显示的是请求的延迟数据。
2025-07-28 16:56:19
1320
原创 解决ubuntu linux debug时报错: Cannot insert breakpoint xxx. Cannot access memory at address xxx
老版本的 GDB 在找不到 /proc/PID/mem 文件时,会转而使用 ptrace,而新版本的 GDB 则禁用了 ptrace,默认 /proc/PID/mem 是存在的。发现问题后,马上进行各种搜素引擎查找问题以及解决方案,终于发现这是gdb的一个bug,因为我用的linux系统是windows子系统 wsl,而 WSL 中没有对 /proc/PID/mem 提供支持。一开始以为是idea的问题,遂转到linux下使用gdb来调试,发现是另一个错误,执行run指令后,提示找不到。
2025-07-28 16:55:46
412
原创 解决 xshell 无法连接win10 、win11的linux子系统
正常情况下,在微软的软件商店安装好ubuntu后,第一次进入系统都会让你先设置一个账号,而这个账号权限是有限的,假如我们想要管理员权限的话,就必须用root方式登陆,那么我们就可以用以下方式来达到用root登陆的目的;在windows的应用商店下载了ubuntu 22.04.2 版本,但是在使用的过程中发现windows主机和子系统的ubuntu的网络是不通的,也就无法通过xshell连接;因为xshell连接的是22端口,所以一定要先开放,每个系统开放端口的方式都不一样,以下是使用ufw工具。
2025-07-28 16:55:13
618
原创 GDB高级技巧—反向调试,让代码回退的方法
反向调试是一种高级调试技术,可以让程序已经执行了一段时间后,回退到过去的状态并重新执行。这意味着你可以回到程序执行中的任何点,查看变量的值、堆栈跟踪以及程序执行路径。反向调试可以让我们快速、准确地定位出程序中的错误或异常的根本原因。简单来说,就是一种可以让程序逻辑逆序执行的调试技术。通过它,你可以随时中断程序的正常执行,然后逆序执行,让程序回到过去,并可以查看任意时间点的任意信息。
2025-07-28 16:54:42
736
原创 手把手教你实现简单时间轮算法
如果想定期执行一个操作,只需要起一个定时器,设置时间间隔,然后时间达到之后就执行任务,一个定时器对应一个任务,如果任务很少的情况下这样做没什么问题,但是任务有成千上万个的时候,就得起很多的定时器,不断轮询,这对系统的内存和cpu都产生了很大的压力,程序还没开始跑呢,定时器已经满天飞了…以下是纯手写的简单定时器代码,用死循环执行,因为一个定时器只针对一个任务,所以开销巨大,不建议使用sleep(延时N秒);... 执行任务。
2025-07-28 16:54:09
650
原创 定时任务 cron表达式 ? 和 * 的区别
1、【日期】与【星期几】两者为互斥的,不能同时设置。这个比较容易理解,假设日期设置为1,星期几也设置为1,那含义是什么:每月1日且为周一时触发,可能一年之中没用任何天能满足上述条件,更重要的是什么人能有这种xx的需求呢?正常的用法为 x/y,x表示触发的起始数值,y表示后续间隔,如 秒数中设置 5/20,则表示从第5秒开始触发,然后每隔20秒再循环触发(25、45,下次循环5、25、45…表示列表项目的分割,如 秒数中设置 1,3,17,则表示秒数为1,3,17时满足触发条件。表示任意值都满足触发条件。
2025-07-28 16:53:39
517
原创 git rebase使用教程 以及和merge的区别
rebase 和 merge 相似,但又不完全相同,本质上都是用来合并分支的命令,区别如下merge合并分支会多出一条merge commit记录,而rebase不会merge的提交树是非线性的,会有分叉,而rebase的提交树是线性的(通过重写提交历史),它是一条直线;rebase可以将多个commit合并,而merge不支持这个功能merge合并操作很友好,因为它没有破坏性。
2025-07-28 16:53:01
853
1
opencv训练级联分类器训练数据,车头车尾图,包含正样本和负样本图片,192张正样本和2000张负样本
2024-07-03
nginx利用redis实现session会话共享-tomcat8版本专用
2018-09-11
自定义注释的mybatis-generator-core-1.3.6.jar
2018-07-22
mysql-connector-java-5.0.8-bin 连接mysql数据库的驱动jar包
2018-07-20
mybatis-generator-core-1.3.2(含有源码--生成注释、自定义sql)
2018-07-23
mybatis-generator-core-1.3.2(含有源码--生成注释、自定义sql)第二版本
2018-07-23
Mybatis-Generator自动生成Dao、Model、Mapping相关文件,不依赖maven,直接生成
2018-10-24
Jenkins2.215安装包和常用插件包.zip
2020-01-20
cas-server-webapp-4.0.0.war--cas server去掉https验证
2018-07-24
nodejs-webpack进阶教程-逐步加入vue、HtmlWebpackPlugin、css压缩、热部署
2018-11-30
redis服务端以及java程序和教程
2018-04-28
ThreadLocal 的key是弱引用,为啥gc无法回收?
2025-07-27
c语言 *(char **) 是啥意思?
2023-10-22
c/c++ 如何判断一个指针是否已分配内存空间?
2023-05-30
c/c++ 宏定义的问题
2023-05-18
c++直接返回指针有问题吗?
2023-05-10
c++子类继承父类时为啥析构函数执行了2次
2023-04-12
const在函数的前、中、后有什么区别?
2023-03-21
c++野指针是什么?
2023-03-14
clion写c++头文件提示找不到函数实现
2023-03-19
c++对指针运算++和+=1是一样的吗?
2023-03-18
c++ int i 和new int有什么区别?
2023-03-14
C++未赋值的变量为啥是个随机数?
2023-03-14
c++这样写为什么会报错?
2023-03-13
高并发情况下,要保证数据库一致性,除了加锁,还有哪些方式?
2022-05-24
熔断和降级的区别是什么
2021-08-30
服务熔断和降级的区别是什么?
2021-08-17
微服务高并发情况下会产生哪些问题
2021-08-24
面试题:mysql海量数据如何将A表的数据更新到B表
2021-08-04
myisam写数据的时候会把表锁住吗?
2021-07-27
请问原力计划的表情是怎么加上去的?
2021-07-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅