springmvc|springmvc 集成 Spring Data Elasticsearch 遇到的坑
- 2018年08月15日记录
发布的版本是 3.0.9.RELEASE 对应的elasticsearch 版本是 5.5.0
遇到的几个坑在这里记录一下:
- spring版本问题,由于项目遗留问题,当时用的是3.0.5.RELEASE 集成 Spring Data Elasticsearch
3.0.9.RELEASE 之后 在代码中按照文档介绍使用,例如定义Respository:
//定义接口
public interface ESLogRespositoryextends ElasticsearchCrudRepository{
...
}
//使用的时候
@Autowired
private ESLogRespository esLogRespository;
虽然按照文档说明这样使用,然而在实际用的时候发现根本无法注入实例,因为ESLogRespository没有对应的实现类(文档中并没有说要实现类),尝试过在ESLogRespository上加各种注解都不行,搜索一番后也没有这方面的说明,尝试更新spring到4后仍然不行,Stack Overflow上求助后有人提出升级到5才行,其实之前我也试过把spring升级到5,可能是由于缓存加上用到的依赖包很多(项目遗留),还有一些依赖没有升级等等并没有解决问题,后来下定决心整理每一个依赖包去掉无用的依赖把spring升级到5.0.4.RELEASE,对应的hibernate等也都做了升级,才真正解决问题。期间还试过把Spring Data Elasticsearch 版本降到1.3.0.RELEASE 版(各个版本也试过)也确实可以解决spring低版本问题,但是又带来其他问题,与下文类似。
- elasticsearch版本问题,刚开始的时候部署的是最新版6以上,在项目中死活连不上,因为有最低版本要求,elasticsearch 5.6以上 无奈只好把 elasticsearch 换成了 5.6.9版本。
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 2018-07-09|2018-07-09 Spring 的DBCP,c3p0
- spring|spring boot项目启动websocket
- Spring|Spring Boot 整合 Activiti6.0.0
- Spring集成|Spring集成 Mina
- springboot使用redis缓存
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了