Java
文章平均质量分 87
勤奋的知更鸟
我很勤奋
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PyTorch 与 Spring AI 集成实战
本文介绍了将PyTorch深度学习模型与Java微服务集成的完整流程。通过FastAPI将PyTorch模型部署为REST API服务,Spring AI调用该接口实现问答、分类等功能。具体包括:模型保存与FastAPI服务构建、Spring AI通过RestTemplate访问接口、将模型集成到Tool Calling架构中。实战演示了智能客服情感分析场景,展示了Python模型与Java微服务的协同方案。该方案为企业提供了将AI模型嵌入Java系统的可行路径,实现了深度学习与大语言模型的联合应用。原创 2025-07-11 23:12:23 · 1513 阅读 · 0 评论 -
Spring AI 本地 RAG 实战:用Redis、Chroma搭建离线知识问答系统
本文介绍使用Ollama+Qwen-7B搭建离线知识问答系统的完整方案。通过Spring AI框架实现本地大模型接入,结合Redis/Chroma向量数据库构建RAG(检索增强生成)架构,解决企业私有数据问答需求。系统包含环境搭建、项目结构设计、Maven依赖配置、Redis向量库实战等模块,提供文档添加、问答检索等核心功能,支持完全离线部署,避免API限制和网络问题。特别适合中文业务场景下的私有知识库构建。原创 2025-07-09 14:00:49 · 847 阅读 · 0 评论 -
SpringAI编码实战:使用本地免费部署的大语言模型跑起来
通过本篇教程,你不仅学会了 Spring AI 的核心组件,还成功在本地搭建了 Ollama 和 Qwen 模型,并用它们运行了你的第一个 AI 应用。这为你探索人工智能的世界打下了坚实的基础。原创 2025-07-08 15:20:52 · 1318 阅读 · 0 评论 -
Spring AI 基本组件详解 —— ChatClient、Prompt、Memory
本篇为《Java驱动AI革命:Spring AI八篇进阶指南》系列第二篇,聚焦Spring AI核心组件ChatClient、PromptTemplate和Memory的实战应用,手把手指导构建AI聊天应用。突破传统教程依赖国外服务的局限,全程采用免费开源的本地大模型平台Ollama与国内Qwen(通义千问)模型,无需科学上网或付费API,即可在个人电脑上部署运行。教程强调企业级智能系统开发实践,助力开发者低成本、高效率体验大模型技术,实现本地局域网内的Java编码与大模型集成。原创 2025-07-08 14:21:24 · 1639 阅读 · 0 评论 -
AI Tool Calling 实战——让 LLM 控制 Java 工具
Spring AI赋能大语言模型工具调用开发指南 摘要:本文介绍如何利用Spring AI实现LLM工具调用能力,将Java方法转化为智能体可调用的工具。通过@AiFunction注解快速声明可调用方法,系统自动生成OpenAI兼容的Function Schema。开发者只需注入ToolCallingChatClient,即可实现多轮上下文对话和智能任务执行。文章包含完整项目示例,展示天气查询、服务重启等场景,并解析了背后的自动注册机制和调用流程。原创 2025-07-07 22:12:51 · 967 阅读 · 0 评论 -
Spring AI 概述与架构设计
摘要: Spring AI是Spring官方推出的AI开发框架,为Java应用提供统一、可扩展的AI能力集成方案。核心模块包括ChatClient(统一模型交互)、PromptTemplate(动态Prompt管理)、Tool API(函数调用)、VectorStore(向量检索)等,支持OpenAI、Azure、HuggingFace等主流模型。通过依赖注入和模块化设计,Spring AI简化了AI功能开发,解决了传统LLM调用中API耦合、Prompt管理混乱等问题。示例展示了如何快速集成GPT-4,凸原创 2025-07-06 11:52:50 · 1221 阅读 · 1 评论 -
Java驱动AI革命:Spring AI八篇进阶指南——从架构基础到企业级智能系统实战
《Spring AI系列教程:Java开发者的大模型实战指南》摘要:本系列8篇文章由浅入深地讲解Spring AI框架,涵盖从基础架构到企业级落地的完整知识体系。内容包括:Spring AI核心组件解析、向量数据库集成RAG实战、PyTorch整合、提示工程、AI工具调用、智能Agent构建等关键技术。教程特别针对Java/Spring Boot开发者,提供与主流大模型(OpenAI/Gemini等)的对接方案,以及数据库问答、微服务集成等企业场景实践。所有文章均附带可复现代码,建议顺序学习,7月份将全部更原创 2025-07-06 11:43:42 · 1182 阅读 · 0 评论 -
Spring AI介绍:Java开发者迈向智能应用的新利器
摘要: Spring AI是Spring生态推出的全新AI应用框架,旨在简化Java开发者构建AI驱动的应用。它提供统一编程模型,支持集成OpenAI、Hugging Face等主流AI模型,强调可移植性、模块化和POJO设计理念。通过自动配置ChatClient等组件,开发者仅需简单依赖注入即可调用AI能力,如示例代码所示,实现提示交互与业务逻辑的无缝结合。Spring AI降低了AI开发门槛,成为连接企业数据与AI模型的桥梁,为Java生态开启智能应用开发新篇章。原创 2025-07-05 15:12:16 · 857 阅读 · 0 评论 -
Java 编程之访问者模式详解
《访问者模式实战:快递员配送案例解析》摘要 访问者模式是一种行为型设计模式,它将对象操作从数据结构中分离出来,通过"访问者"对象实现不同操作。本文以快递员配送场景为例,通过Java代码演示模式实现:Place接口为元素基类,Company和School为具体元素,DeliveryVisitor作为访问者实现不同地点的配送逻辑。当元素调用accept方法时,会反向调用访问者对应的visit方法,完成特定操作。原创 2025-07-04 08:49:44 · 663 阅读 · 0 评论 -
Java 编程之模板方法模式
《用一杯茶咖理解模板方法模式》通过生活化的泡茶/冲咖啡案例,生动阐述了模板方法设计模式的核心思想。文章将饮品的冲泡流程抽象为固定模板(烧水、冲泡、倒杯、加料),通过Java代码实现父类定义骨架、子类实现细节的经典结构。这种模式提高了代码复用性(公共流程只写一次)和扩展性(子类定制差异化步骤),适用于框架设计、数据处理流程等场景。文中还分析了该模式的优缺点,并提供了代码增强建议,帮助读者深入理解这一经典设计模式。原创 2025-07-03 14:46:38 · 842 阅读 · 0 评论 -
Java 编程之策略模式详解
策略模式是一种行为型设计模式,它将一组可互换的算法封装成独立的类,使它们可以在运行时灵活切换。文章以外卖配送为例,展示了三种配送策略的实现:骑手专送、商家自送和用户自取。通过定义DeliveryStrategy接口和OrderContext上下文类,实现了配送策略的动态切换,体现了策略模式"解耦行为、易于扩展"的特点。该模式适用于支付方式、认证登录等多种场景,Java8还支持lambda简化实现。与状态模式不同,策略模式由外部主动设置策略而非内部自动切换。原创 2025-07-02 07:27:58 · 1264 阅读 · 0 评论 -
Java 编程之状态模式
摘要:本文通过电梯控制的典型案例,揭示了传统if-else状态管理的缺陷,提出状态模式解决方案。状态模式将对象行为封装到独立状态类中,实现行为与状态的解耦。文中详细展示了Java实现代码,包含状态接口、三种具体状态类(开门、运行、停止)以及电梯上下文类,通过UML类图清晰呈现模式结构。相比传统方法,状态模式具有更好的可扩展性和可读性,适用于电梯管理、游戏角色行为、审批流程等多种场景,是管理复杂状态转换的理想选择。原创 2025-07-01 07:50:32 · 434 阅读 · 0 评论 -
Java 编程之观察者模式详解
观察者模式是一种行为型设计模式,用于建立对象间一对多的依赖关系。当被观察对象状态变化时,所有依赖的观察者会自动收到通知并更新。本文以天气预报系统为例,展示了观察者模式的实现:气象站作为被观察者(Subject),手机App和LED站牌作为观察者(Observer)。通过代码示例和UML图详细讲解了该模式的结构、实现方法及其优点(低耦合、可扩展性)。典型应用场景包括GUI事件系统、消息订阅发布框架等。观察者模式本质上实现了"发布-订阅"机制,使对象状态变化能及时通知所有依赖项。原创 2025-06-28 09:31:24 · 975 阅读 · 0 评论 -
Java 编程之备忘录模式
备忘录模式:实现状态恢复的后悔药 备忘录模式是一种能在不破坏对象封装性的前提下,保存并恢复对象内部状态的设计模式。本文通过小说创作的撤销功能案例,生动展示了该模式的实现方法。 核心结构: Originator(作者):负责创建备忘录和恢复状态 Memento(草稿):保存对象状态的快照 Caretaker(草稿箱):管理备忘录历史记录 实现要点: 使用栈结构保存多个历史状态 每次修改前保存当前状态 撤销时从栈中取出最近保存的状态 适用场景:文本编辑撤销、游戏存档、事务回滚等需要状态恢复的功能。原创 2025-06-26 23:00:40 · 1053 阅读 · 0 评论 -
Java编程之中介者模式(Mediator Pattern)
摘要:中介者模式是一种行为型设计模式,通过中介对象协调多个组件间的通信,降低系统耦合度。以酒店前台为例,客人只需联系前台,由前台统一协调保洁、厨房、维修等部门,避免了直接交互的复杂性。UML结构图展示了中介者与各部门的星型关系,Java代码实现了酒店各部门通过前台中介的交互机制。该模式适用于GUI控件、聊天室等需要集中协调的场景,能有效简化对象间通信,提高系统灵活性和可维护性。原创 2025-06-25 17:00:42 · 795 阅读 · 0 评论 -
Java编程之迭代器模式(Iterator Pattern)
摘要: 迭代器模式是一种行为型设计模式,用于顺序访问聚合对象中的元素而不暴露其内部结构。本文以Java书架示例展示模式实现,包含迭代器接口、聚合接口、具体迭代器(BookShelfIterator)和聚合类(BookShelf)。该模式通过封装遍历逻辑、统一接口实现解耦,支持多种遍历策略,适用于隐藏集合结构、组合模式等场景。JDK的java.util.Iterator是其典型应用。核心优势在于将数据存储与遍历行为分离,提升代码复用性和扩展性。(149字)原创 2025-06-24 08:45:24 · 1198 阅读 · 0 评论 -
java编程之解释器模式
摘要:解释器模式是一种行为型设计模式,用于定义文法规则并解释特定语言的表达式。核心思想是将语言中的元素(终结符/非终结符)转化为对象结构,通过递归解释实现语义解析。典型应用包括SQL解析、数学表达式计算(如"3+5*2")和规则引擎。该模式通过Expression接口、TerminalExpression(如数字)和NonTerminalExpression(如加减法)构建类结构,优点是扩展性强,但存在类膨胀问题。文中以四则运算为例演示实现过程,并指出该模式适合简单语法场景,复杂语法建议原创 2025-06-23 08:10:47 · 960 阅读 · 0 评论 -
Java 编程之命令模式
摘要: 命令模式是一种行为型设计模式,通过将请求封装为对象,解耦请求发送者与执行者。典型应用如餐厅点餐系统:顾客(Invoker)下单→服务员(Command)记录→厨师(Receiver)执行。Java实现包含三个核心组件:1)命令接口(OrderCommand);2)实际执行者(Chef);3)调用者(Waiter)。该模式支持命令排队、撤销和日志记录,适用于UI控件、事务管理、宏命令等场景,具有高内聚、低耦合的优势。通过UML图和麦当劳案例清晰展示了模式结构,体现了"请求即对象"的原创 2025-06-21 18:47:43 · 653 阅读 · 0 评论 -
Java 编程之责任链模式
责任链模式是一种行为型设计模式,允许多个对象处理同一请求,避免发送者和接收者耦合。摘要如下: 请假审批实例生动展示责任链模式:班组长处理1天,主管3天,经理7天,总经理处理所有。请求沿责任链传递,直到找到合适处理者。代码实现包含抽象Handler和具体处理者类,通过setNext构建责任链。模式优点在于解耦和灵活扩展,缺点可能无人处理请求。实际应用包括Servlet Filter、审批流程等场景。文章提供UML图、代码示例和链式构建器优化,帮助理解这一贴近现实的设计模式。原创 2025-06-21 18:02:42 · 641 阅读 · 0 评论 -
Java 编程之代理模式
本文详细解析Java代理模式的实现方式及应用场景。代理模式通过中间对象控制对目标对象的访问,常用于权限控制、功能增强、延迟加载等场景。文中以购票服务为例,展示了静态代理的时间检查功能,以及动态代理的通用增强处理(如优惠券检查、支付提醒)。代理模式是Spring AOP等框架的核心实现机制,合理运用可有效解耦业务与非业务逻辑。原创 2025-06-20 22:08:45 · 1293 阅读 · 0 评论 -
Java编程之享元模式
摘要:享元模式通过将对象状态分为可共享的内部状态(如面条基底)和可变的外部状态(如配料),有效减少重复对象创建。本篇通过面馆例子,不同类型的面条作为享元对象被缓存复用,配料作为外部状态动态组合。该模式包含享元接口、具体享元类、非享元类和享元工厂等角色,适用于对象数量大且部分状态相同的场景(如字符渲染、连接池)。优点包括节省内存和提高性能,但需注意区分内外部状态。实现时需建立享元工厂管理共享对象,客户端负责维护外部状态。原创 2025-06-18 13:05:08 · 1183 阅读 · 0 评论 -
Java编程之外观模式
外观模式(Facade Pattern)摘要 外观模式是一种结构型设计模式,旨在通过统一的高层接口简化复杂子系统的使用。它封装子系统细节,客户端只需与"门面"交互(如调用startEvening()一键开启家居设备),无需了解内部实现(灯光、空调、音响的协同逻辑)。该模式显著降低系统耦合度,符合迪米特法则,适用于需要为复杂模块提供统一入口、隔离依赖或简化客户端调用的场景。其核心优势包括使用简单、隐藏细节、解耦系统和统一控制,如同智能家居遥控器或外卖平台,让用户聚焦结果而非过程。原创 2025-06-16 15:09:21 · 582 阅读 · 0 评论 -
Java编程之装饰器模式
装饰器模式是一种结构型设计模式,允许在不修改原始对象的情况下动态添加新功能。它通过抽象装饰器和具体装饰器组件构成,将功能扩展拆分为独立模块,实现运行时自由组合。典型应用包括Java I/O流、GUI组件增强等场景。该模式遵循开闭原则,避免类爆炸问题,但在多层装饰时可能增加调试难度。核心优势在于灵活的功能扩展能力,适合需要动态添加职责的复杂系统。代码示例展示了咖啡添加配料的过程,演示了装饰器的链式调用机制。原创 2025-06-16 14:49:41 · 914 阅读 · 0 评论 -
Java异步编程实战指南:从问题代码到最佳实践
Java异步编程常见问题与优化方案 摘要:本文分析了Java异步编程中线程滥用、回调地狱、异常丢失、数据竞争等典型问题。线程管理不当会导致OOM,建议使用线程池或虚拟线程;回调嵌套应改用CompletableFuture链式调用;异常处理需显式捕获避免丢失;共享数据需原子操作或同步控制。优化方案包括:1) 合理控制并发度,2) 拆分业务逻辑,3) 完善异常处理链,4) 使用现代化工具如虚拟线程。针对调试困难,建议添加全局异常处理器和上下文日志。通过规范异步编程模式,可提升代码可维护性和系统稳定性。原创 2025-06-12 09:36:02 · 495 阅读 · 0 评论 -
Java异步编程之消息队列疑难问题拆解
本文总结了Java中使用消息队列(RabbitMQ/Kafka)实现异步通信时的常见问题及解决方案。主要涵盖6个核心问题:1)消息丢失问题,建议采用生产者确认、消息持久化和消费者ACK机制;2)消息重复消费,推荐使用幂等设计和全局唯一ID;3)消息顺序性,可通过单队列单消费者或Kafka分区策略解决;4)消息积压,建议水平扩展消费者或优化消费逻辑;5)事务一致性,采用本地事务+消息表或最终一致性模式;6)分布式事务,使用最大努力通知或Seata框架。针对每个问题,文章都提供了具体的代码实现示例。原创 2025-06-10 22:16:16 · 611 阅读 · 0 评论 -
如何使用CodeRider插件在IDEA中生成代码
本文介绍了如何利用JiHu-GitLab CodeRider插件在IntelliJ IDEA中实现高效代码开发。首先指导完成环境搭建与插件安装,包括系统要求、认证配置和Spring Boot项目初始化。重点演示了智能代码生成功能,通过自然语言描述自动生成RESTful控制器代码,以及可视化逻辑编排操作流程。该工具能自动参考项目上下文生成代码片段,支持逐步插入或批量导入,显著提升开发效率,特别适合在GitLab项目中进行快速原型开发。原创 2025-06-09 22:20:44 · 1143 阅读 · 0 评论 -
Java性能测试工具列举
Java性能测试工具分类及对比 Java性能测试工具主要分为负载测试工具(如JMeter、Gatling、LoadRunner)和代码分析工具(如YourKit、VisualVM)。JMeter适合Web/API测试但性能开销大,Gatling支持高并发但需Scala基础,LoadRunner功能强大但成本高。代码分析工具中,YourKit提供深度分析但价格昂贵,VisualVM轻量免费但功能有限。开发者可根据项目需求(协议支持、并发量、预算)选择工具,结合负载测试与代码分析优化性能。原创 2025-06-09 12:05:12 · 1569 阅读 · 0 评论 -
Java编程之组合模式
摘要 组合模式是一种结构型设计模式,用于处理"部分-整体"层次结构,使客户端统一对待单个对象和组合对象。其核心是通过抽象组件接口(Component)统一叶子节点(Leaf)和组合节点(Composite)的操作,支持树形结构管理。透明式组合模式强制所有节点实现相同接口(可能引发异常),而安全式模式仅组合节点包含子组件管理方法,牺牲透明性但更安全。典型应用包括文件系统、UI组件等场景,优点是简化客户端代码、灵活扩展,缺点是可能违反接口隔离原则。Java实现中,透明式需处理叶子节点的无效方原创 2025-06-08 16:57:39 · 1163 阅读 · 0 评论 -
Java编程之桥接模式
摘要: 桥接模式是一种结构型设计模式,核心思想是将抽象与实现分离,使它们独立变化。它通过组合替代继承,解决多维度变化导致的类爆炸问题。例如奶茶系统,通过桥接模式可将奶茶种类和杯子大小两个维度解耦,避免类数量指数级增长。模式包含四个角色:抽象化角色、扩展抽象化角色、实现化角色和具体实现化角色。其优点是降低耦合度、提高扩展性,但可能增加设计复杂度。适用于需要处理多个独立变化维度或运行时动态绑定的场景。原创 2025-06-08 16:31:15 · 807 阅读 · 0 评论 -
Java编程之适配器模式
Java适配器模式是一种结构型设计模式,用于转换接口以实现不兼容对象间的协作。它通过适配器类将现有接口转换为目标接口,包含类适配器(继承实现)和对象适配器(组合实现)两种方式。类适配器受限于单继承,而对象适配器更灵活。该模式适用于复用旧系统、适配第三方库等场景,能提高代码复用性和系统扩展性,但需注意避免过度包装增加复杂度。典型应用包括电压转换等接口适配需求。原创 2025-06-07 15:16:18 · 526 阅读 · 0 评论 -
Java编程之原型模式
摘要:原型模式通过复制已有对象创建新实例,适用于对象创建成本高的场景(如游戏角色生成)。核心角色包括抽象原型、具体原型和客户类。Java通过Cloneable接口实现,需注意浅拷贝(仅复制对象本身)与深拷贝(复制对象及其引用字段)的区别。优点在于提升性能和动态配置对象,缺点为深拷贝实现复杂且可能破坏封装性。适用场景包括耗时对象创建和动态属性配置,需谨慎处理引用字段和clone()方法。合理使用可显著优化复杂对象的复制效率。(150字)原创 2025-06-07 11:50:54 · 735 阅读 · 0 评论 -
Java编程之建造者模式
摘要:建造者模式是一种创建型设计模式,用于分步构建复杂对象,将构建过程与表示分离。核心组件包括产品、抽象建造者、具体建造者和指挥者。通过电脑配置示例展示了如何实现该模式,包括产品类定义、建造者内部类和使用链式调用的对象构建过程。该模式的优点包括构建表示分离、分步构建、链式调用和参数验证,适用于创建复杂对象、处理多可选参数及构建不同产品表示的场景。与工厂模式相比,建造者模式更关注对象的分步构建过程。实际开发中可用Lombok的@Builder注解简化代码编写。原创 2025-06-03 17:44:10 · 604 阅读 · 0 评论 -
Java抽象工厂模式详解
Java抽象工厂模式是一种创建型设计模式,用于封装一组相关产品的创建过程。该模式通过抽象工厂接口定义产品创建方法,由具体工厂实现类负责创建特定系列的产品(如Windows/MacOS风格的UI组件)。主要包含四个角色:抽象工厂、具体工厂、抽象产品和具体产品。其优点包括解耦客户端代码、保证产品一致性,但扩展新产品类型时需要修改接口。适用于需要创建多系列相关产品的场景,如跨平台UI组件开发。相比于工厂方法模式,抽象工厂能处理更复杂的产品家族创建需求。原创 2025-06-01 22:10:56 · 1488 阅读 · 0 评论 -
23种设计模式概览
设计模式分创建型、结构型、行为型三类。创建型优化对象创建,如单例、工厂模式;结构型构建高效结构,如适配器、装饰器模式;行为型增强对象协作,如观察者、策略模式。这些模式通过封装变化、提高复用,显著提升代码的可读性、可维护性和可扩展性,是软件设计的经典解决方案。原创 2025-05-31 16:56:47 · 1241 阅读 · 0 评论 -
Java工厂方法模式详解
《工厂方法模式解析》 工厂方法模式是一种创建型设计模式,核心是将对象创建与使用分离。通过定义创建接口并让子类决定实例化哪个类,提升了代码扩展性和维护性。模式包含四个要素:产品接口、具体产品类、工厂抽象类和具体工厂实现类。相比简单工厂违反开闭原则的缺点,标准工厂方法模式通过继承和多态将创建逻辑延迟到子类。常见变体包括参数化工厂和反射工厂两种实现方式。该模式特别适合对象创建复杂、需要动态生成或框架设计的场景。虽然会增加类数量,但遵循开闭原则、降低耦合度的优势使其成为最常用的设计模式之一。与简单工厂和抽象工厂相比原创 2025-05-31 16:49:51 · 686 阅读 · 0 评论 -
Java 单例模式详解
摘要:Java单例模式确保类仅有一个实例并提供全局访问点。主要实现方式包括:1)饿汉式(线程安全但资源浪费);2)懒汉式(非线程安全);3)同步锁懒汉式(线程安全但性能差);4)双重检查锁(线程安全且高效,需volatile);5)静态内部类(推荐方案,延迟加载且线程安全);6)枚举(最佳实践,防序列化和反射攻击)。单例模式适用于资源管理、配置管理等场景,但需注意序列化时需实现readResolve()方法。推荐优先采用静态内部类或枚举实现,避免基本懒汉式在多线程环境下的安全问题。原创 2025-05-31 13:07:11 · 579 阅读 · 0 评论
分享