【jestClient】springBoot2.6.x使用jestClient连接elasticsearch单机、集群的方法

问题描述

由于springBoot2.6.x不再支持自动注入JestClient,直接使用@Autowired注入会报错。比较好的解决方法是在项目中添加一个jestConfig配置类,用于自动注入。以下是连接es单机与集群的配置类示例。

单机es配置

@Configuration
public class JestConfig {

    @Value("${elasticsearch.jest.uris}")
    private String uris;
    @Value("${elasticsearch.jest.username}")
    private String username;
    @Value("${elasticsearch.jest.password}")
    private  String password;

    @Bean
    public JestClient jestClient(){
        JestClientFactory factory = new JestClientFactory();
        if(StringUtils.isBlank(username)){ //ES未设置账号密码的情况
            factory.setHttpClientConfig(new HttpClientConfig
                    .Builder(uris) //单机es地址
                    .multiThreaded(true)
                    .build());
            return factory.getObject();
        }
        factory.setHttpClientConfig(new HttpClientConfig
                .Builder(uris) //单机es地址
                .defaultCredentials(username,password) //ES的账号密码
                .multiThreaded(true)
                .build());
        return factory.getObject();   
 }
}

集群es配置

@Configuration
public class JestConfig {

    @Value("${elasticsearch.jest.uris}")
    private String uris;
    @Value("${elasticsearch.jest.username:}")
    private String username;
    @Value("${elasticsearch.jest.password:}")
    private  String password;

    @Bean
    public JestClient jestClient(){
        String[] serverUris = uris.split(",");
        JestClientFactory factory = new JestClientFactory();
        if(StringUtils.isBlank(username)){ //ES未设置账号密码的情况
            factory.setHttpClientConfig(new HttpClientConfig
                    .Builder(Arrays.asList(serverUris)) //es地址
                    .multiThreaded(true)
                    .discoveryEnabled(true) //刷新集群中可用的es列表
                    .build());
            return factory.getObject();
        }
        factory.setHttpClientConfig(new HttpClientConfig
                .Builder(Arrays.asList(serverUris)) //es地址
                .defaultCredentials(username,password) //es的账号密码
                .multiThreaded(true)
                .discoveryEnabled(true)
                .build());
        return factory.getObject();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值