☰
Spring AI 2.0.1 依赖兼容性问题与Jackson 版本冲突
2026/9/29 20:00:39 网站建设 项目流程

Spring AI 2.0.1 通过传递依赖将 Spring Boot 拉到 4.0.x、Spring Framework 拉到 7.x、Jackson 拉到 3.x。与 Spring Boot 3.x 项目不兼容。

组件Spring Boot 3.x 项目Spring AI 2.0.1 要求
Spring Boot3.5.x4.0.x
Spring Framework6.x7.x
Jackson2.x(com.fasterxml.jackson.core)3.x(tools.jackson.core)

典型错误

1. Jackson 注解缺失

NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonSerializeAs

Jackson 3.x 的 databind 需要 annotations 2.21+,Spring Boot 3.x 自带的是 2.18。

2. Jackson 版本冲突

MalformedParameterizedTypeException: Mismatch of count of formal and actual type arguments in constructor of tools.jackson.core.TreeCodec

Jackson 2.x 和 3.x 的 jar 同时在 classpath 上,Spring Boot 3.x 的JacksonAutoConfiguration用 2.x API 创建 ObjectMapper 时遇到 3.x 的类。

3. MyBatis Plus 自动配置失效

Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

mybatis-plus-spring-boot-autoconfigure依赖 Spring Boot 3.x,Spring Boot 4.0.x 下不生效。

解决方案

pom.xml 关键配置:

<!-- 1. Spring Boot 升到 4.0.x --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>4.0.4</version> </parent> <!-- 2. Spring AI BOM 2.0.1 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>2.0.1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!-- 3. MyBatis Plus 排除自动配置,手动管理 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.12</version> <exclusions> <exclusion> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot-autoconfigure</artifactId> </exclusion> </exclusions> </dependency>

手动配置 MyBatis Plus(MyBatisPlusConfig.java):

@Configuration @MapperScan("com.example.mapper") public class MyBatisPlusConfig { @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { MybatisSqlSessionFactoryBean factory = new MybatisSqlSessionFactoryBean(); factory.setDataSource(dataSource); SqlSessionFactory sqlSessionFactory = factory.getObject(); sqlSessionFactory.getConfiguration().setMapUnderscoreToCamelCase(true); return sqlSessionFactory; } @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } }

总结

问题原因解决
Jackson 注解缺失Jackson 3.x 需要 annotations 2.21+Spring Boot 4.0.x 自带
Jackson 版本冲突2.x 和 3.x 共存Spring Boot 4.0.x 统一用 3.x
MyBatis Plus 不兼容自动配置不支持 Spring Boot 4.x排除自动配置,手动配置 SqlSessionFactory

一句话:Spring AI 2.0.1 要求 Spring Boot 4.0.x,别在 3.x 上硬凑。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询