自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java调用milvus数据库

java操作milvus 向量数据库 crud

2025-12-19 14:05:59 563

原创 SpringAi调用Mcp

用示例 高德地图map吧,可以自行注册一个高德应用,有免费额度,确实很好用。4.通过分词器切割文档,通过向量模型分解向量存入向量milvus数据库。看了很多官网示例,没有找到对应依赖,无法调用?Spring ai 官网示例依赖是统一管理,当然你也可以不用。1.可以通过mysql兼容历史对话存储,进行上下文通话。3.调用mcp的测试demo:McpTest。2.通过自定义模版类型,让ai返回对应类型。觉得有帮助记得给个Start和关注哦。

2025-12-19 11:36:31 325

原创 foreach通过当前元素获取循环次数

如果列表有重复元素,这可能不准确,通过indexOf方法。

2025-10-29 13:53:50 125

原创 多线程下数据保证原子性

等),通过CAS(Compare-And-Swap)机制保证操作的原子性。关键字可以修饰方法或代码块,确保同一时间只有一个线程能访问共享资源。我会在最后给出运行示例验证,将对应的代码copy就好了。其他类型,起多个线程就好了,你会得答案是正确的,不会少。更灵活的锁机制,支持可中断锁、超时锁等特性。Java并发包提供了线程安全的容器(如。Java提供了一系列原子类(如。),内部已实现原子性操作。5.基于Redisson。

2025-08-06 16:57:18 241

原创 监听bean在容器中注入情况

原理就是 通过环境监听器。

2025-08-04 10:32:59 112

原创 网关如何代理不同nacos分组服务

开箱食用,我把nacos配置抽了一个公共服务,里面涉及到spring boot3.x的自动装配,初学可以照着配置了解自定义start。详细讲解在我的这个博客,因为我发现openfein和gateway是一样的,所有调用nacos服务都会走。NacosServiceDiscovery服务提供对应注册实例。

2025-08-04 10:14:40 345

原创 为什么jdk动态代理不能代理类只能代理接口

JDK动态代理的接口限制本质是单继承机制和动态代理轻量化设计的共同结果。这种设计虽牺牲了灵活性,但确保了代理的标准化和安全性。在实际开发中,可根据需求选择JDK接口代理(推荐面向接口编程)或CGLIB类代理(需权衡性能与复杂度)。

2025-08-03 13:58:17 300

原创 NACOS跨命名空间跨分组调用

可能其他人就会觉得啊呦,我服务那么多,放一起很多,很不雅观,也不方便我去区分他是那个微服务模块的服务注册,所以nacos他是有分组的,然后呢也可以通过命名service 来区分,而且还是有检索的,比如订单的配置就放order分组里面,库存就放stock分组里面。然后我们看到对应代码,有一个对应的getInstances,其实他这个与我们现在是无关的,这个就是负载均衡的过程需要执行的钩子逻辑,真正起到作用的是LoadBalancerClientFactory.choose,

2025-08-02 23:24:25 1361

原创 @Lookup注解使用及详解

那这样问题又来了,既然是cglib那么他应该既可以代理类又可以代理接口,但是你看他的原理作用,是动态生成子类且是重写目标方法,如果是接口,那么他需要重新实现所有接口的方法,那就违背初衷了。今天看spring源码时,解析这个标签的时候,想着玩一下,好久没用,一不小心就掉入了坑,只记得作用可以替换bean方法,结果替换了接口的bean方法,所有gg,报错。好了,那么问题来了,为什么都是bean我换一下就报错了呢。@Lookup注解为什么不能在接口的方法使用。提供一个成功继承示例 总结在下。

2025-07-29 15:55:52 341

原创 spring源码下载如何解析配置启动成功

好了,以为到这一步就成功了吗,6.0版本的,nonono,我自身就有jdk17,但是他识别不到,他会重新去下载,会很慢,甚至直接超时,他检测不到有多个原因,可能你确实没有配jdk17环境变量,但是我已经配好了,是代码里面必须使用BellSoft发行的jdk版本才行,那现在我们注释掉就OK了。我下载的是spring-6.2.0-m1版本的,对应jdk17,里面有我添加的注释,我放在码云了,可以自行获取,或者去github拉其他版本也是可以的。spring源码,亲测可用,亲测可用!,现在是真正拉取依赖配置。

2025-07-29 15:53:50 407

原创 jdk动态代理清楚简单解析

总体来说为什么jdk只能代理接口是因为,jdk代理最终会在jdk那边动态生成字节码,会继承Proxy类,java是不能多继承的。首先想要自定义jdk代理,你需要准备,一个接口,一个接口类,一个实现。jdk动态代理是如何进行代理的,为什么只能代理接口类呢?InvocationHandler类;调用方法前: saveUser。调用方法后: saveUser。

2025-07-29 15:53:05 159

原创 RabbitMq的基本方法使用

后续若有需要,可以更新创建交换机,绑定消息队列等,及注解使用。util的demo中的main方法包含四个使用。这个文件是初始rabbitMq的连接配置工厂。创建队列,消费信息,删除队列,发送消息。安装对应依赖,版本可以去官网对应。

2024-11-28 18:33:10 246

原创 阿里云验证码及认证服务 oauth2

记得保存三大关键信息 client_id 唯一标识id,不会改变,access_token 权限令牌,expies_in 有效时间。3.登录相关信息会保存到session中 所以要将session(随机访问服务器,导致信息存储不同内存不足)问题处理好。方法二、将ip分成找对应的服务器,不再随机访问(访问的ip多少多少归那个服务器或者业务字段来划分等)方法一.、将所有的相关信息放入中间件中存储,统一存储(如redis)单点登录(一次登录,进入多个服务不需要重复登录)(还可以加很多配置,如有效时间什么的)

2024-11-28 18:09:18 348

原创 线程池的7大核心参数及使用

【代码】线程池的7大核心参数及使用。

2024-11-28 18:08:11 134

原创 redis的三个常用问答及解决方案

所有缓存在同一时间失效,恰巧有超大并发数据进行进行查询,缓存没有就会直接所有数据查询数据库导致数据库崩盘。将查询数据库的大量请求进行拦截,放行一个查询,查完并释放锁,让其他人获得锁,就不用查db,查缓存了。精确打击,一个值就要失效了,然后马上来了大量的数据来查询他,缓存没有,也就又是查询db,导致崩溃。许多大量数据查询缓存没有的,然后也会直接查询数据库,导致数据库崩溃。就是查询缓存一定没有的大量数据,导致数据库崩溃。加入随机有效时间,不统一有效时间。缓存可以存null值。

2024-11-28 18:03:59 135

原创 分布式锁和本地锁

分布式锁 大锁 锁所有服务 本地锁 小锁 锁每个服务分布式通过整合redisson来添加 (locke)写锁是互斥锁,有一个锁,就必须等释放完才能进行下一个锁读锁是共享锁读 +读 相当于无锁读+写 等读锁释放完,再进行写锁写+写 相当于阻塞方式写+读 等写锁释放完,再进行读锁本地锁可以通过synchronized来解决当然用整合的springCache更好五个注解解决相关锁的问题 因为这个源码添加的是本地锁。

2024-11-28 18:02:17 266

原创 mybatis-plus因xml有空格导致报错解决

主要是在sql哪里调用 SqlSourceBuilder.removeExtraWhitespaces(boundSql.getSql());在这个包下就可以看到相关的sql是有换行符的(这个sql解析在那暂时没调出来)写一个mybatis plus的拦截器。源码: 当时找错误核心部分。

2024-11-28 17:59:02 377

原创 java操作linux命令 开发环境在windos 生产在linux

this.getCmd()方法就是我的项目部署在linux服务器上进行操作的方法。最重要的在最下面 记得关注查看哦 因为这个可能设计到你的人生转折 🤭🤭。我是通过yml区分开发和生产 也可以通过git分支等待来区分。我的处理是对接口进行加密处理 需要的话我可以提供代码和思路。这样会有注入的风险 一定要做好处理!windos在开发下进行操作linux命令。这样的话直接传命令进去 服务器就会执行啦。万一被注入拼接 rm -rf 你就完啦。首先安装依赖jsch包。

2023-08-25 16:21:08 136 1

原创 在windos操作linux 获取文件夹大小

directory: 这个参数做其他操作可以不用 但是我获取文件大小必须用他 因为本机不支持直接cd。传入参数 command: 你需要执行的命令 例如 cd /home。开发环境(win)及生产环境(linux) 俩个操作linux命令。实在是自己写的遍历方法在文件太多的时候获取大小太慢了。自己写的获取文件大小太慢 就直接通过操作系统来获取。测试代码 这个只支持在任何情况下。

2023-08-16 15:46:48 201 1

原创 将list进行分页处理 公共方法

我用的是mybatis-plus的分页对象 也可以使用自己的分页对象。page.records==返回的参数(list)这里的page 传参主要是 第几页和查询条数。page.current==第几页。page.total==记录总数。page.size==查询条数。

2023-08-14 08:59:32 250

原创 项目实用 java调用k8s

源码: 我将重要方法重写 就能随心所遇的更改任何的路径 就不用考虑请求发送认证的关系(为了展示 这就是我没有改动)可以解决k8s外部相关框架接口 如 tfjob,padd,pytchon等 一个万能api。在工具包最终发送请求时 是拼接路径 例 其中的删除CustomObject方法。如果操作k8s找对应的api太难 就试试我这万能的方法吧。2.万能api 可以创建任何想创建的。

2023-08-09 14:50:19 593 1

原创 mybatis-plus 增加乐观锁

自定义一个异常 被乐观锁限制修改或新增失败时抛出这个异常 进行 重试 (我这里没有进行判断我业务比较简单 ,可以在aop里面进行判断是否是自己抛出的这个异常)这有一个问题 加入@Transactional 注解 重试时 无法第一时间获取最新数据 需要降低事务隔离级别。写一个aop,进行添加失败重试处理(我是通过自定义注解来进行监听的) 例。controller示例 实体类和service自己重新定义。先配置好mybatis-plus开启乐观锁。在你需要作为版本字段里面加入。

2023-05-08 17:56:19 420 1

原创 excel导入图片 转存 url

下面是我根据这位博主修改的 代码片段。

2023-05-08 17:34:30 677 1

原创 如何将list转成page对象 简单实用

如何将list转成page对象 轻松解决

2022-12-01 14:05:26 1838

空空如也

空空如也

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

TA关注的人

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