yml配置文件
# application.yml 示例
spring:
elasticsearch:
rest:
uris: http://192.168.x.y:9201,http://192.168.x1.y1:9201,http://192.168.x.y:9201
username: aaaaaaa
password: bbbbb
然后修改配置类
@Configuration
public class ElasticSearchConfig {
@Value("${spring.elasticsearch.rest.uris}")
private String[] uris;
@Value("${spring.elasticsearch.rest.username}")
private String username;
@Value("${spring.elasticsearch.rest.password}")
private String password;
@Bean
public RestHighLevelClient elasticsearchClient() {
HttpHost[] httpHosts = new HttpHost[uris.length];
for (int i = 0; i < uris.length; i++) {
httpHosts[i] = HttpHost.create(uris[i]);
}
// 配置HTTP基本认证
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
// 配置RestClientBuilder
RestClientBuilder builder = RestClient.builder(httpHosts)
.setHttpClientConfigCallback(new HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
});
// 创建RestHighLevelClient
return new RestHighLevelClient(builder);
}
}