ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Spring AI 2.0.1 依赖兼容性问题与Jackson 版本冲突

Spring AI 2.0.1 依赖兼容性问题与Jackson 版本冲突 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.xSpring Framework6.x7.xJackson2.xcom.fasterxml.jackson.core3.xtools.jackson.core典型错误1. Jackson 注解缺失NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonSerializeAsJackson 3.x 的 databind 需要 annotations 2.21Spring Boot 3.x 自带的是 2.18。2. Jackson 版本冲突MalformedParameterizedTypeException: Mismatch of count of formal and actual type arguments in constructor of tools.jackson.core.TreeCodecJackson 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 requiredmybatis-plus-spring-boot-autoconfigure依赖 Spring Boot 3.xSpring Boot 4.0.x 下不生效。解决方案pom.xml 关键配置:!-- 1. Spring Boot 升到 4.0.x -- parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version4.0.4/version /parent !-- 2. Spring AI BOM 2.0.1 -- dependencyManagement dependencies dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-bom/artifactId version2.0.1/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement !-- 3. MyBatis Plus 排除自动配置手动管理 -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-spring-boot3-starter/artifactId version3.5.12/version exclusions exclusion groupIdcom.baomidou/groupId artifactIdmybatis-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.21Spring Boot 4.0.x 自带Jackson 版本冲突2.x 和 3.x 共存Spring Boot 4.0.x 统一用 3.xMyBatis Plus 不兼容自动配置不支持 Spring Boot 4.x排除自动配置手动配置 SqlSessionFactory一句话Spring AI 2.0.1 要求 Spring Boot 4.0.x别在 3.x 上硬凑。
返回列表