我是靠谱客的博主 无语火车,这篇文章主要介绍springboot进行elasticsearch的开发,现在分享给大家,希望可以做个参考。

目录

第一步:进行es的相关依赖的处理

第二步:定义全局的变量,用于在开发环境或者说uat环境动态变更处理

第三步:定义springboot的es的配置类


第一步:进行es的相关依赖的处理

es依赖包的版本设置

复制代码
1
2
<elasticsearch.version>6.4.3</elasticsearch.version> <spring.data.elasticsearch.version>3.2.1.RELEASE</spring.data.elasticsearch.version>

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!-- elasticsearch --> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>${elasticsearch.version}</version> <exclusions> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.17.2</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-client</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.elasticsearch.plugin</groupId> <artifactId>transport-netty4-client</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>

第二步:定义全局的变量,用于在开发环境或者说uat环境动态变更处理

第三步:定义springboot的es的配置类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.impl.client.BasicCredentialsProvider; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import org.elasticsearch.client.RestHighLevelClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringBootElasticsearchConfig { private Logger LOGGER = LoggerFactory.getLogger(SpringBootElasticsearchConfig.class); @Value("${system.elasticsearch.schema:http}") private String schema; @Value("${system.elasticsearch.address:#{null}}") private String address; @Value("${system.elasticsearch.userName:#{null}}") private String userName; @Value("${system.elasticsearch.password:#{null}}") private String password; @Value("${system.elasticsearch.connectTimeout:10000}") private int connectTimeout; @Value("${system.elasticsearch.socketTimeout:60000}") private int socketTimeout; @Value("${system.elasticsearch.connectionRequestTimeout:10000}") private int connectionRequestTimeout; @Value("${system.elasticsearch.maxConnectTotal:1000}") private int maxConnectTotal; @Value("${system.elasticsearch.maxConnectPerRoute:500}") private int maxConnectPerRoute; @Value("${system.elasticsearch.keepAliveTime:3600000}") private long keepAliveTime; public SpringBootElasticsearchConfig() { } @Bean( name = {"restHighLevelClient"}, destroyMethod = "close" ) public RestHighLevelClient restHighLevelClient() { if (!StringUtils.isNotBlank(this.address)) { return null; } else { this.LOGGER.info("start init elasticsearch address:" + this.address); List<HttpHost> hostLists = new ArrayList(); String[] hostList = this.address.split(","); String[] var3 = hostList; int var4 = hostList.length; for(int var5 = 0; var5 < var4; ++var5) { String addr = var3[var5]; String host = addr.trim().split(":")[0]; String port = addr.trim().split(":")[1]; hostLists.add(new HttpHost(host, Integer.parseInt(port), this.schema)); } HttpHost[] httpHost = (HttpHost[])hostLists.toArray(new HttpHost[0]); RestClientBuilder builder = RestClient.builder(httpHost); builder.setRequestConfigCallback((requestConfigBuilder) -> { requestConfigBuilder.setConnectTimeout(this.connectTimeout); requestConfigBuilder.setSocketTimeout(this.socketTimeout); requestConfigBuilder.setConnectionRequestTimeout(this.connectionRequestTimeout); return requestConfigBuilder; }); builder.setHttpClientConfigCallback((httpClientBuilder) -> { httpClientBuilder.setMaxConnTotal(this.maxConnectTotal); httpClientBuilder.setMaxConnPerRoute(this.maxConnectPerRoute); httpClientBuilder.setKeepAliveStrategy((response, context) -> { return this.keepAliveTime; }); if (StringUtils.isNotBlank(this.userName)) { this.LOGGER.info("start setting username and password of elasticsearch"); CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(this.userName, this.password)); httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); } return httpClientBuilder; }); return new RestHighLevelClient(builder); } } }

最后

以上就是无语火车最近收集整理的关于springboot进行elasticsearch的开发的全部内容,更多相关springboot进行elasticsearch内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(90)

评论列表共有 0 条评论

立即
投稿
返回
顶部