springBoot 2.3.0版本及以后版本不支持es查询工具jestClient自动注入

背景:之前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>

 


版权声明:本文为goxingman原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。