哪个版本的com.javaeatmoi.core可兼容Spring 5.3.14版本
com.javaeatmoi.core:javaeatmoi-spring4-vfs2-support 兼容Spring 5.3.14的版本说明 版本适配结论
com.javaeatmoi.core:javaeatmoi-spring4-vfs2-support 所有公开发布的正式版本(包含你当前使用的1.4.1版本)均为Spring 4.x分支适配版本,无官方发布的原生兼容Spring 5.3.14的正式版本。
兼容问题根因
Spring 5.0版本起对核心资源解析类做了API调整:PathMatchingResourcePatternResolver的受保护方法doFindPathMatching从原有的2个入参签名,调整为包含Set<Resource>类型结果集参数的3入参签名。
你当前使用的1.4.1版本中,重写的Vfs2PathMatchingResourcePatternResolver#doFindPathMatching仍然沿用Spring 4.x时代的2参方法签名,升级Spring版本后会因方法签名不匹配,抛出类加载错误或方法不存在异常,这也是该组件在Spring 4.2.5环境下运行正常、升级后报错的直接原因。
可行解决路径
- 自行编译适配版本:拉取1.4.1版本的组件源码,修改
Vfs2PathMatchingResourcePatternResolver类的doFindPathMatching方法签名,对齐Spring 5.3.14的3参要求,方法内部原有的VFS2路径匹配、资源遍历逻辑无需大改,仅需将遍历得到的资源对象写入第三个入参的结果集合即可,修改完成后打包发布到本地私服替换原有依赖即可。 - 移除第三方依赖使用Spring原生实现:Spring 5.x分支已经内置了完整的JBoss VFS资源解析支持,如果你没有强依赖eatmoi组件的定制化VFS2处理逻辑,可以直接排除
javaeatmoi-spring4-vfs2-support依赖,改用Spring原生提供的org.springframework.core.io.VfsResourcePatternResolver完成资源路径匹配,无需额外适配即可在Spring 5.3.14版本下正常运行。
内容的提问来源于stack exchange,提问作者GeekCoder
相关产品推荐
相关产品推荐

