背景:之前java项目是springboot的,使用到es查询一直用jestClient,这次springboot升级到2.3.0后发现jestClient自动注入报错了,发现不支持jestClient自动注入了
解决方法有两个思路:
1、手动创建jestClient,并手动注入springboot容器,用起来应该和以前区别不大,只是多了一步,下面简单举个手动注入的例子
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>5.3.4</version>
</dependency>
@Repository
public class jestClient {
public JestClient getJestCline(){
JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(new HttpClientConfig
.Builder("http://localhost:9200")
.multiThreaded(true)
.build());
return factory.getObject();
}
}
2、不用jestClient,使用spring全家桶里面的spring-data-elasticsearch客户端
好处是自家的东西肯定会一直维护和兼容的,坏处是要重新学一下,并且如果不用spring做项目可能会麻烦点
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>