news 2026/5/1 4:59:26

Spring Boot + LangChain4j 报错:Bean 类型不匹配的解决办法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot + LangChain4j 报错:Bean 类型不匹配的解决办法

在使用 Spring Boot + LangChain4j 开发 AI 应用时,在 Service 工厂中注入如下两个Bean:

@ResourceprivateStreamingChatModelopenAiStreamingChatModel;@ResourceprivateStreamingChatModelreasoningStreamingChatModel;

一切看起来都很合理,但启动时就报如下错误❌:

Bean named'openAiStreamingChatModel'is expected to be oftype'dev.langchain4j.model.chat.StreamingChatModel'but was actually oftype'dev.langchain4j.model.openai.OpenAiStreamingChatModel'

最诡异的是OpenAiStreamingChatModel明明是StreamingChatModel的子类,期望类型和实际类型“看起来完全兼容”,但还是报错!

原因分析

这个错误的根源,其实不是代码逻辑的问题,而是spring-boot-devtools的热部署机制导致的类加载冲突。

Spring Boot DevTools 为了实现快速重启,使用了两个类加载器。
一个是Base ClassLoader,主要负责加载Spring Boot 框架、第三方 jar(比如 langchain4j-core.jar);

另一个是Restart ClassLoader,主要负责加载自己的项目代码(比如src/main/java)。

默认情况下,DevTools 会把 所有非项目代码的 jar 放入 Base ClassLoader

但是!

LangChain4j 这类库,通过 Maven 引入,它其实是属于“第三方依赖”,理应由Base ClassLoader加载。

然而,在某些版本或配置下,DevTools 可能错误地将部分LangChain4j类交给了Restart ClassLoader

这样就造成同一个类,有两个身份,这样 JVM 认为这是两个完全无关的类。即使包名、类名、继承关系都对,也无法进行类型转换或赋值。

解决方案

1.在项目的如下目录中创建文件:

src/main/resources/META-INF/spring-devtools.properties

2.文件内容如下,主要目的是告诉 DevTools,这些 jar 属于基础类路径,统一用Base ClassLoader加载。

restart.include.langchain4j=/langchain4j-.*\.jar restart.include.openai=/openai-.*\.jar

3.重新运行,问题解决。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 17:49:30

机器学习 - 贝叶斯定理

摘要:贝叶斯定理是概率论基础概念,亦是机器学习中概率推理与决策的核心,其数学公式为 P (A | B) P (B | A) P (A) / P (B),可基于新证据更新事件发生概率,广泛应用于垃圾邮件过滤、医疗诊断、图像识别等场景&#xf…

作者头像 李华
网站建设 2026/4/17 21:00:02

2026必备!8个降AI率网站推荐,千笔AI助你轻松应对AIGC检测

AI降重工具:让论文更自然,让查重更轻松 在人工智能技术快速发展的今天,越来越多的学术写作开始依赖AI生成内容。然而,随之而来的AIGC检测问题也给学生和研究者带来了不小的挑战。如何在保持原意的基础上,有效降低AI痕…

作者头像 李华
网站建设 2026/4/25 17:34:45

如何判断AI智能降重写作软件的核心能力?

判断 AI 智能降重写作软件的核心能力,关键不在于功能多寡,而在于 “核心功能够硬、适配自身需求、无隐形风险”,结合学术写作的实际场景,可从以下 5 个核心维度精准判断,每一个维度都对应软件的核心价值,简…

作者头像 李华
网站建设 2026/4/18 9:18:35

如何利用二维码提升视频营销效果?

视频二维码营销是一种创新手段,能够显著提升视频传播效果。通过二维码,用户能够便捷地访问相关视频,提升观看体验。营销人员可以利用数据分析功能,追踪用户的行为和兴趣,精准了解观众的需求。这一工具的个性化设计&…

作者头像 李华
网站建设 2026/4/30 21:31:02

【开题答辩全过程】以 基于Java的家政服务系统为例,包含答辩的问题和答案

个人简介 一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等 开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。 感谢大家…

作者头像 李华
网站建设 2026/4/28 4:48:57

/usr/include/php/20230831/main/php.h的庖丁解牛

/usr/include/php/20230831/main/php.h 是 PHP 内核开发的核心头文件,它定义了 PHP 扩展(C 语言)与 Zend 引擎交互的底层接口。路径中的 20230831 是 PHP API 版本号,对应 PHP 8.3 的发布日期(2023-08-31)。…

作者头像 李华