springboot2.1升级到springboot2.2,兼容spring-boot-starter-data-elasticsearch高版本

最近在升级服务框架时,遇到一个springboot兼容性问题

**问题是这样的,服务之前用到的elasticsearch是6.5版本,最近想升级到7.7。随后我开始升级发现要将项目原springboot的版本从2.1.3升级到2.2.X才能兼容elasticsearch7.X **

我首先搭建了一个springboot脚手架,将springboot用到2.2.5通过ElasticsearchRepository去操作es,发现没有问题。因为服务之前用到的方式就是通过ElasticsearchRepository,后续升级不太好去改变。

我马上就在我们的服务上面测试升级一下springboot版本,结果问题来了
springboot2.1升级到springboot2.2,兼容spring-boot-starter-data-elasticsearch高版本_第1张图片
一直出现这个异常,创建repository报NullPointerException,一直在纠结于到底是为什么,后面看到了一个文章才找到问题所在

把springboot 从2.0.3 升级到2.2.0版本 会出现 循环依赖注入问题,比如 在a类中依赖了b类,然后在b类又依赖了a类,导致启动报错,原本在2.0.3版本的时候并没有出现问题,升级以后才出现这个问题,怀疑是springboot 2.2.0 对循环依赖做了一个不同的处理(还不是很确定),解决这个问题也很简单如下图在自注入注解的地方加上@Lazy注解即可
原文章路径

最后我也乖乖的在需要注入的repository上面加了一个@Lazy,重启问题解决。很是奇怪
在这里插入图片描述

最后希望大家还是不要随意升级,希望对大家能有帮助

你可能感兴趣的:(springboot,java,spring,boot,spring,es,elasticsearch)