自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring AI 对话记忆不丢失!MySQL 主存 + Redis 缓存实战(免费模型调用+附源码)

本文介绍了基于SpringAI框架的对话记忆持久化解决方案,针对原生版本存在的生产级问题,设计实现了"MySQL主存储+Redis二级缓存"的混合架构。该方案通过三层组件实现:CustomJdbcChatMemoryRepository处理MySQL同步写入保证数据可靠性;RedisChatMemoryRepository实现高性能缓存读取;DualWriteChatMemoryRepository作为协调层,采用"MySQL同步写+Redis异步写"策略。

2026-04-19 15:27:48 449

原创 还在用简单 AI 对话?Spring AI 自定义工具 + MCP 协议直接打通外部服务!

本文介绍了如何基于SpringAI构建具备图像生成和联网搜索能力的智能对话系统。主要内容包括: 图像生成功能实现 使用SpringAI的@Tool注解创建图像生成工具 集成MinIO对象存储服务保存生成的图片 通过自定义工具类实现AI画图并自动存储 MCP协议接入 采用智谱WebSearchPrime服务实现联网搜索 配置MCP客户端连接远程搜索服务 将MCP工具注册到ChatClient中 系统架构优化 MySQL+Redis双写策略保障对话记忆 上下文传递机制确保会话一致性 。

2026-04-19 15:25:49 599

原创 LangChain4j 从 0 到 1 实战,10大特性+本地 Ollama + 可运行源码

本文介绍了基于LangChain4j框架开发Java原生AI应用的实战案例。通过SpringBoot3.5.8+JDK21+Ollama本地大模型构建的AI博客写作助手,实现了10大核心功能:编程式/声明式API调用、多轮对话记忆、自定义工具集成、MCP实时网页搜索、RAG知识库问答、安全校验机制和流式响应等。文章详细讲解了系统提示词设计、工具方法开发、RAG知识库构建等关键技术实现,并提供了完整的项目结构和单元测试案例。该项目展示了Java开发者如何利用LangChain4j快速构建稳定、安全的LLM应用

2026-04-02 17:36:51 381

原创 Git+IDEA+Gitee 实操练习 Demo,掌握版本控制基础

本文介绍了Git在项目协作中的基础操作与实践技巧。主要内容包括:环境配置(Git安装、IDEA关联、Gitee仓库创建)、基本工作流程(提交、推送、拉取)、分支管理(创建、切换、推送)以及冲突解决(合并分支、可视化处理冲突)。重点演示了如何通过IDEA工具高效完成Git操作,特别是处理多人协作时常见的代码冲突问题。文章还总结了Git核心操作流程和分支管理原则,为后端开发者提供了实用的Git协作指南。

2026-02-06 17:34:32 1001

原创 在实战中学习MyBatis-Plus和PageHelper,项目可直接复制运行

本文对比了MyBatis-Plus和PageHelper两种主流分页工具的实现方式和使用特点。通过商品分页查询的完整示例,展示了两种分页方式的具体应用:MyBatis-Plus通过拦截器实现物理分页,与MP生态深度集成;PageHelper采用线程绑定方式,适配所有MyBatis项目。文章详细介绍了从环境搭建到前后端联调的完整流程,包括数据库设计、SpringBoot配置、服务层实现、控制器编写和前端页面开发,并总结了两种分页工具的核心原理、常见用法和注意事项,为开发者提供了实用的分页解决方案参考。

2026-02-03 11:17:53 824

原创 入门 Spring AOP 切面编程(从理论到实战)

本文通过奶茶店的比喻介绍了AOP(面向切面编程)的核心概念,包括连接点、切入点、通知等。文章详细讲解了5种通知类型的特点和应用场景,并提供了一个完整的订单系统实战Demo。Demo展示了如何使用Spring AOP实现前置、后置、返回、异常和环绕通知,包含了配置类、切面类、业务接口及测试代码。文章还总结了核心注解的使用方法,如@Aspect、@Pointcut等,并强调了@Around通知必须调用proceed()方法的注意事项。通过这个通俗易懂的教程,读者可以快速掌握AOP的基本原理和实际应用。

2026-01-28 16:40:31 574

原创 适合新手构建的API测试框架:基于Spring Boot和RestClient的自动化测试实践

本文介绍了一个基于SpringBoot 3.2.4构建的轻量级API测试框架。该框架采用配置驱动方式,通过JSON文件管理测试用例,支持GET/POST请求方法,并能自动验证响应结果。核心组件包括配置管理、请求实体、服务层实现和配置文件解析等模块,使用RestClient作为HTTP客户端。虽然存在不支持异步请求、参数处理简单等不足,但具有结构简单、易于扩展的特点,适合作为基础框架进行二次开发。文章详细说明了项目结构、核心代码实现及使用方法,为开发者提供了快速上手的参考方案。

2026-01-27 10:18:50 581

原创 新手也能学会的 Java Condition,生活示例,轻松搞定线程协作

本文介绍了Java并发编程中的Condition接口,通过奶茶店点单场景类比其工作原理。Condition相比传统的wait()/notify()更灵活,能创建多个等待队列实现精准唤醒。关键点包括:必须配合Lock使用、循环检查条件防止虚假唤醒、注意死锁风险及finally释放锁。文章还通过生产者-消费者模式的奶茶店代码示例,展示了Condition如何协调线程协作。核心要点是Condition能按条件精准控制线程等待和唤醒,提高并发效率。

2025-12-13 18:32:06 792

原创 这就是读写锁(ReentrantReadWriteLock)吗?

摘要:读写锁是一种"读写分离"的锁机制,特别适用于"读多写少"场景。它允许多个读操作并行执行,而写操作独占执行,有效提升并发性能。Java中的ReentrantReadWriteLock实现了读写锁,具有可重入、公平/非公平模式、锁降级等特性。与普通独占锁相比,读写锁在读操作频繁的场景下能显著提高系统吞吐量,但需要注意读写互斥、锁升级限制等问题。该锁通过分离读锁和写锁,在保证线程安全的同时优化了并发访问效率。

2025-12-09 16:49:46 1220

原创 原来自旋锁还能这么理解

摘要:自旋锁通过线程原地循环等待来避免上下文切换开销,适合锁持有时间短的场景,但会占用CPU资源。适应性自旋锁更智能,根据历史等待时间和竞争情况动态调整自旋次数,平衡CPU开销和切换成本。Java中通常使用synchronized或ReentrantLock而非手动实现自旋锁。

2025-12-08 18:55:41 622

原创 小白也能懂的AQS工作原理

AQS(AbstractQueuedSynchronizer)是Java并发编程中的核心同步框架,其工作原理可类比食堂排队打饭场景。AQS通过同步状态(state)控制资源访问,采用双向阻塞队列管理等待线程,每个线程被封装为Node节点。Node节点通过waitStatus标记5种状态(初始/SIGNAL/CANCELLED/CONDITION/PROPAGATE),实现高效线程调度。AQS的高效性体现在:非盲目等待(仅SIGNAL状态才阻塞)、自动清理无效节点、入队前自旋尝试、虚拟头节点设计等优化措施。该

2025-12-08 14:33:59 720

原创 2025计算机能力挑战赛初赛Java(编程第二题)

摘要:本文介绍了一个使用并查集算法解决城市连通性问题的方案。题目要求处理n个城市间的q次操作,包括建立连接和查询连通性。通过并查集实现高效的合并与查找操作,利用路径压缩优化性能。对于查询操作,若两城市连通则输出"Yesxy",否则输出"No"。代码示例展示了Java实现,包括初始化、查找(带路径压缩)和合并操作。

2025-11-23 16:27:19 61

原创 安装并勾选hype-v环境后,解决Docker Desktop启动一直转圈的一种方法(亲测有效)

摘要:针对Docker Desktop启动时持续转圈的问题,本文提供解决方案。当因使用VMware等虚拟化软件而禁用Hyper-V启动项后,可通过管理员命令提示符执行bcdedit /set hypervisorlaunchtype auto恢复设置,并重启电脑。验证方法为运行bcdedit查看配置值是否为auto。注意本方法仅适用于Hyper-V启动项被禁用导致的启动异常。

2025-11-13 16:11:06 1358 1

原创 SpringBoot调用本地部署Ollama中模型,怎样实现Ollama 服务的流式响应格式

本文介绍了使用Spring WebClient实现与Ollama模型交互的流式响应方案。主要内容包括:1)环境准备和pom.xml依赖配置(WebFlux、Jackson等);2)定义请求/响应数据模型;3)配置RestTemplate和WebClient;4)实现服务层逻辑,支持普通响应和流式响应两种模式;5)控制器层接口设计,其中流式接口使用Flux返回类型并设置MediaType为TEXT_EVENT_STREAM。该方案充分利用WebClient的响应式特性,实现了与Ollama模型的高效流式交互,

2025-10-17 10:30:30 426

空空如也

空空如也

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

TA关注的人

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