- 博客(17)
- 收藏
- 关注
原创 Spring AI ChatModel API 详解【基于官方文档】
方面字符串方法Prompt 方法适用场景快速原型、单轮问答多轮对话、自定义配置输入纯文本消息列表 + 选项输出StringChatResponse(含元数据,如 token 使用量)优缺点简单,但无历史/角色支持强大,但稍复杂。
2025-12-03 21:52:00
1049
1
原创 Spring Boot SSE 流式输出,智能体的实时响应
在现代Web应用中,实时数据推送已经成为提升用户体验的关键技术。特别是在AI对话、实时监控、长任务执行等场景中,传统的请求-响应模式往往无法满足实时性需求。本文将详细介绍如何使用Spring Boot的SSE(Server-Sent Events)技术实现流式输出,并以AI智能体为例展示具体实现。SSE(Server-Sent Events)是一种允许服务器向客户端实时推送数据的技术。与WebSocket不同,SSE是单向通信(服务器→客户端),实现简单且浏览器兼容性好。简单的HTTP协议,无需额外协议。
2025-10-05 23:55:50
1976
原创 Spring AI Advisor是什么
通过管理对话ID使用控制历史记录检索数量支持防止内存阻塞的线程保护机制?.publishOn(Schedulers.boundedElastic()) // 切换线程池@Component@Override@Override@Override@OverrideSpring AI Advisor提供了一个强大而灵活的机制来增强AI交互过程。实现自定义的业务逻辑注入构建可复用的AI交互增强组件统一处理横切关注点如日志、记忆管理等。
2025-10-03 10:00:00
315
原创 Java字符串加密算法
在Java开发中,数据安全是至关重要的环节。无论是用户密码存储、敏感信息传输,还是数据完整性验证,都需要使用合适的加密算法。本文将全面介绍Java中常用的字符串加密算法,包括单向哈希对称加密非对称加密以及编码技术,并提供完整的代码示例。场景推荐算法注意事项用户密码存储BCrypt自动加盐,抗彩虹表攻击数据完整性验证SHA-256快速哈希,抗碰撞性强敏感数据加密对称加密,性能好,需要安全管理密钥安全数据传输RSA + AESRSA交换AES密钥,AES加密数据数据编码传输Base64。
2025-09-24 22:30:04
464
原创 【大白话】浅析Transformer的自注意力机制:从“小纸条”到改变AI的核心魔法
在Transformer模型诞生之前,自然语言处理(NLP)领域主要由循环神经网络(RNN)及其变体(如LSTM)主导。顺序处理,难以并行:必须一个字一个字地处理序列,计算速度慢。长距离依赖问题:当句子很长时,模型容易“忘记”开头的信息。比如在句子“我出生在法国,……,所以我流利地说法语”中,RNN很难建立“法国”和“法语”之间的遥远联系。Attention机制的初衷,就是解决“长距离依赖”问题。它允许模型在处理每个词时,能够直接“看到”句子中所有其他词,并赋予不同的重要性(权重)。
2025-09-24 22:28:04
869
原创 【Spring高级】动态Bean注册:突破IOC静态配置,实现运行时Bean的热插拔
动态Bean注册是Spring框架中一个强大但相对"隐蔽"的高级特性。它打破了传统IOC容器的静态限制,为应用带来了前所未有的灵活性。这项技术虽然强大,但也要谨慎使用。“能力越大,责任越大”,动态修改容器结构会引入额外的复杂度,务必在确实需要的场景下使用,并做好充分的测试和监控。希望本文能帮助你在Spring进阶之路上迈出坚实的一步!如果有任何问题或想法,欢迎在评论区交流讨论。
2025-09-23 14:06:05
790
原创 MyBatis Plus高级特性详解:自动填充、逻辑删除、乐观锁与多租户方案
Override// 判断当前对象是否包含某个字段-- 在mapper.xml中自定义逻辑删除SQL --> < update id = " deleteByIdWithLog " > UPDATE sys_user-- 在mapper.xml中自定义逻辑删除SQL --> < update id = " deleteByIdWithLog " > UPDATE sys_user。
2025-09-21 09:30:00
738
原创 用一个简单场景浅析DDD(领域驱动模型)
应用层(Application Layer)的控制器(如)接收到HTTP请求。控制器调用领域服务的方法。领域服务开始工作:它通过仓储接口查询Product和Coupon(这些也是聚合根)。它创建聚合根Order。它调用Order聚合根的方法(如addItem)来修改其内部状态。聚合根内部会创建值对象OrderItem。领域服务最后调用 OrderRepository的save方法,将整个Order聚合(包含其所有订单项)持久化到数据库。控制器返回结果。
2025-09-17 10:14:15
932
原创 在Java中判断类是否已加载
方法优点缺点适用场景简单易用可能触发类加载简单检查反射findLoadedClass准确可靠需要反射权限精确检查Java Agent功能强大需要配置Agent监控系统JMX标准API可能不准确监控统计综合工具类全面覆盖代码稍复杂生产环境。
2025-09-16 20:43:01
361
原创 双亲委派机制:JVM类加载的核心规则与打破之道
双亲委派模型是Java类加载器在加载类时遵循的一种工作原则。除了顶层的启动类加载器外,其余的类加载器都必须有自己的“父”加载器(Parent)。当一个类加载器收到加载请求时,它首先不会自己去尝试加载,而是将这个请求委派给父加载器去完成。每一层都是如此,因此所有的请求最终都应该传送到最顶层的启动类加载器。只有当父加载器反馈自己无法完成这个加载请求(在其搜索范围内没有找到所需的类)时,子加载器才会尝试自己去加载。委派父辈,父辈不行,我才上。打破方式驱动原因实现机制经典案例线程上下文类加载器。
2025-09-10 20:12:03
824
原创 Spring Bean生命周期的简单应用
实例化:Spring容器根据Bean定义创建Bean实例属性注入:Spring容器将配置的属性值和依赖注入到Bean实例中初始化:执行各种初始化方法,使Bean达到可用状态使用:Bean在应用程序中被正常使用销毁:容器关闭时,执行清理工作在这些阶段中,Spring提供了多种扩展点,允许开发者在特定时刻执行自定义逻辑。Spring Bean生命周期为开发者提供了强大的扩展能力,通过合理利用这些扩展点,我们可以实现资源管理、配置验证、缓存预热、定时任务注册、动态代理增强、环境适配和依赖检查等多种功能。
2025-08-15 11:37:26
1809
原创 Filter过滤器常见应用场景
Filter是Java EE规范中定义的一个组件,它可以在Web资源被访问之前或之后执行特定的处理逻辑。Filter可以对请求和响应进行拦截、修改或增强,是实现横切关注点(如认证、日志、编码等)的理想选择。Filter是Web应用程序中非常重要的组件,它能够帮助我们实现各种横切关注点的处理。在Spring Boot中,我们可以通过多种方式实现Filter,并且Spring提供了这样的便利类来简化开发。
2025-08-09 23:28:02
987
原创 理解Java单例模式:实现日志记录器和数据库连接池
单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点来获取这个实例。这种模式在需要频繁创建和销毁对象、创建对象消耗资源过多或需要统一管理对象的场景中非常有用。饿汉式适合简单的场景,实现简单但可能浪费资源懒汉式实现了延迟加载,但需要注意线程安全问题双重检查锁在保证线程安全的同时提高了性能,但需要注意volatile的使用静态内部类是目前最推荐的方式,兼顾了线程安全和性能枚举实现最安全,但使用场景有限。
2025-08-05 10:50:12
697
原创 设计线程安全的高性能计数器
方案适用场景优点缺点AtomicLong低并发,简单计数无锁,CAS 轻量级高并发时 CAS 自旋LongAdder高并发写,读少(推荐)分段累加,减少竞争sum()稍慢复杂逻辑,低性能要求简单易用锁竞争高时性能差极高吞吐,允许短暂不一致无竞争,性能极高读取可能不精确分片计数(如按 key 统计)扩展性强,支持多 key内存占用较高。
2025-07-17 11:09:36
1541
原创 Java多线程交替打印1到100的实现方法
在Java多线程编程中,交替打印是一个常见的问题。本文将介绍几种不同的方法来解决这个问题,包括使用关键字、以及Semaphore。
2025-07-16 10:10:41
541
原创 Java并发编程中的任务协作机制解析
工具类是否可复用是否支持条件判断是否适合异步任务推荐使用场景❌❌✅简单的等待多个任务完成Condition✅(配合自定义逻辑)✔️❌复杂线程间协作与状态判断❌(一次性)✔️(通过组合操作)✔️异步任务编排与流式处理在实际开发中,选择合适的并发工具对于构建高效稳定的系统至关重要。提供了简单直接的等待机制;Condition则适用于更复杂的线程间通信需求;而以其强大的组合能力成为现代异步编程的首选方案之一。
2025-07-15 12:40:57
781
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅