- 博客(12)
- 收藏
- 关注
原创 SpringAI:工具调用
工具调用技术解析 工具调用(Tool Calling)是一种让AI大模型借助外部工具完成任务的技术。其核心原理是:AI分析用户需求后,提出工具调用请求,由应用程序执行具体操作并返回结果。该技术通过程序控制确保安全性,防止AI直接访问系统资源。主流实现方式包括Spring AI等开发框架,提供工具定义、执行和结果处理的全流程支持。Spring AI推荐基于Methods方法定义工具,相比函数式编程更简洁高效,支持更丰富的参数和返回类型。工具调用技术已成为AI扩展能力的重要方式,使AI能处理超出自身知识范围的任
2025-12-07 18:54:01
916
原创 Neo4j数据库:连接数据世界的“关系之网”
Neo4j是用Java实现的开源NoSQL图数据库。从2003年开始开发,2007年正式发布第一版,其源码托管于GitHtb。Neo4j作为图数据库中的代表产品,已经在众多的行业项目中进行了应用,如:网络管理、软件分析、组织和项目管理、社交项目等方面。neo4j官网Neo4j实现了专业数据库级别的图数据模型的存储,提供了完整的数据库特性,包括ACID事务的支持、集群的支持、备份和故障转移等。
2025-09-27 15:03:42
1056
原创 微服务的灵魂摆渡者——Nacos
Nacos在微服务系统的服务注册和发现领域,势头迅猛是肉眼可见的。在微服务系统中,服务的注册和发现又是一个灵魂的存在。没有注册中心的存在,成百上千服务之间的调用复杂度不可想象。如果你计划或已经在使用Nacos了,但仅停留在使用层面,那这篇文章值得你一读。本文我们先从服务发现机制说起,然后讲解Nacos的基本介绍、实现原理、架构等,真正做到深入浅出的了解Nacos。
2025-09-19 16:11:12
849
原创 微服务之服务发现
核心思想:客户端只知道服务名,不知道具体实例;服务端(通常是网关或负载均衡器)负责从注册中心获取实例列表并做负载均衡。客户端实现简单:不需要实现服务发现和负载均衡逻辑。负载均衡集中管理:策略统一、更新方便。
2025-09-15 20:35:48
1115
原创 责任链 设计模式(包含代码实操)
责任链设计模式(Chain of Responsibility Pattern)是一种行为型设计模式,用于将请求的发送者与接收者解耦,使多个对象都有机会处理该请求,从而避免请求的发送者与接收者之间的耦合关系。这个模式将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
2025-04-25 13:58:20
532
原创 数据库加密方案 详解
仅加密敏感字段,如身份证号、密码等,提高安全性。:数据库存储的是加密数据,但查询时仍然返回明文。:所有 SQL 传输都是加密的,防止流量被劫持。:加密磁盘上的数据库文件,防止数据被物理盗取。:数据库存储的是加密数据,查询时需要密钥解密。完整的数据库加密方案通常包含。在企业级应用中,数据库加密可以防止。:最小化权限,防止DBA滥用权限。:防止备份文件被窃取后直接读取。下面是详细流程设计。解密,防止 SQL 注入攻击。两级密钥体系进行数据加密。:数据库存储的是加密数据,:防止中间人攻击,在。
2025-02-13 09:30:14
1584
原创 Redisson 中的 Watchdog 机制
Watchdog 的核心是动态续约机制,它能够根据业务逻辑执行的实际时间延长锁的生命周期,避免锁意外过期。对于短时间任务,可以禁用 Watchdog 并设置一个固定的锁过期时间,以减少额外的资源消耗。,每隔一段时间(通常是 10 秒)检查锁是否仍然被持有,并自动将锁的过期时间续约到默认的。如果没有扩展锁的时间,锁会自动过期并释放,导致其他线程获得锁,进而引发数据一致性问题。,其核心机制是通过定期检查锁的状态并动态更新锁的过期时间来实现锁续约。,Watchdog 会持续续约锁,可能导致锁被长期持有。
2024-11-16 16:24:35
1108
原创 idea git 同步 撤回 本地分支/远程分支版本(超详细)
首先将HEAD头签出至本地分支(例如:master),不可将HEAD头签出至某个修订版本,将导致HEAD游离无法进行撤销等功能操作。在Git管理中,选中想要撤回至哪一版本,右键点击所选版本,选择“将当前分支重置到此处”举例:将本地/远程均撤回至“工作台业务功能代码开发”3.选中“硬/Hard”重置(请先理清Soft/Mixed/Hard区别)。将此版本后需保存的代码/文件提前保存,以防丢失。
2024-11-03 14:39:00
1364
1
原创 2024 电子科技大学 数据库期末考试 复习笔记
1NF:使属性具有原子性;2NF:消除非主属性对主键(主码)的部分依赖;就是说每个非主属性必须依赖于候选码集合(在数据库具体来说就是复合主键)3NF:消除非主属性对主建(主码)的传递依赖;BCNF:,任何主属性不能对候选码子集有依赖4NF:消除属性间的多值依赖;判定方法:对于任意关系中,如果存在两个元组(就是行),记为A,B,如果他们的某一属性X的值相等,那么我们交换它们另外的属性Y的值后,得到的新的两个元组,在表中是可以在原来的表中找到与它们相匹配的元组的。
2024-07-22 15:21:36
1292
原创 Libpcap开发库的使用(最全指南!)(包含实操)
这与Linux操作系统对数据包的处理流程是相同的(网卡->网卡驱动->数据链路层->IP层->传输层->应用程序)。包捕获机制是在数据链路层增加一个旁路处理(并不干扰系统自身的网络协议栈的处理),对发送和接收的数据包通过Linux内核做过滤和缓冲处理,最后直接传递给上层应用程序。作为捕捉网络数据包的库,它是一个独立于系统的用户级的API接口,为底层网络检测提供了一个可移植的框架。可以看到,过滤器表达式的具体内容取决于你想要捕获的数据包的特定条件。3. 允许用户输入过滤器,根据过滤器过滤特定的数据包。
2024-04-09 20:41:26
9342
2
原创 SQL语句
order by 排序字段1 排序方式1 , 排序字段2 排序方式2…如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。:分组之后查询的字段:分组字段、聚合函数。运算符: > >= <
2024-04-02 15:54:20
1029
1
原创 TYPORA--快捷键
按SHITF+TAB返回上一级列表。按SHITF+TAB返回上一级列表。按SHIFT+TAB返回上一级列表。按SHIFT+TAB返回上一级列表。随着数字的增大,标题级数逐渐降低。使用方法:右键点击,打开链接。例子:这段文本会被高亮显示。按TAB进入下一级子列表。按TAB进入下一级子列表。按TAB进入下一级列表。按TAB进入下一级列表。注意:链接的()需要。
2024-03-31 14:58:57
740
4
空空如也
sysbench无法进行数据库压力测试,显示内存分配问题
2025-02-27
vs2022安装MFC失败
2023-12-03
关于#c语言#的问题:稀疏矩阵加法
2023-04-18
函数返回类型赋值给一个指针却报错?(语言-c语言)
2023-03-26
关于#C语言#的问题,如何解决?
2023-03-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅