1.1-spring 集成

优质
小牛编辑
128浏览
2023-12-01

1.1 Spring 集成

这是 elasticsearch-rest-plus最常用的一种的环境。通用 elasticsearch-rest-plus提供了多种方式来和 Spring 进行集成。

1.1.1 添加依赖

在开始配置前,先添加相关的依赖。

正常情况下,Spring 和 elasticsearch-rest-plus的集成环境中,应该已经存在下面的依赖:

<dependency>
    <groupId>cn.xphsc</groupId>
    <artifactId>elasticsearch-rest-plus</artifactId>
    <version>1.0.2</version>
</dependency>

注意:获取版本 https://mvnrepository.com/artifact/cn.xphsc/elasticsearch-rest-plus

1.1.2 和 Spring 集成

和 Spring 进行集成时,分为 XML 和注解配置两种方式,每种方式又有不同的配置方式。

这里提供了很多配置方式,使用时选择一种改动最小的方式即可!

1.2.2.1 XML 配置

<!-- 配置elasticsearch-rest-plus模版-->
    <bean id="elasticsearchTemplate" class="com.xphsc.elasticsearch.core.ElasticsearchTemplate">
       <!-- 默认必须使用数据源 -->
       <property name="uris" ref ="http://localhost:9200"></property>
    </bean>

1.1.2.2.使用 Configuration 进行配置

@Configuration
public static class ElasticsearchTemplateConfiguration {

 @Bean
  public ElasticsearchTemplate elasticsearchTemplate() {
    ElasticsearchTemplate elasticsearchTemplate=new ElasticsearchTemplate();
    if(Collects.isNotEmpty(elasticsrarchRestProperties.getUris())&&Strings.isBlank(elasticsrarchRestProperties.getProxy().getHost())){
        elasticsearchTemplate.setUris(elasticsrarchRestProperties.getUris().toArray(new String[]{}));
    }
    if(Strings.isNotBlank(elasticsrarchRestProperties.getProxy().getHost())){
      elasticsearchTemplate.setProxyHost(elasticsrarchRestProperties.getProxy().getHost());
      if(elasticsrarchRestProperties.getProxy().getPort()!=0){
          elasticsearchTemplate.setProxyPort(elasticsrarchRestProperties.getProxy().getPort());
      }
    }
    if(Strings.isNotBlank(elasticsrarchRestProperties.getUser_name())){
      elasticsearchTemplate.setUserName(elasticsrarchRestProperties.getUser_name());
    }
    if(Strings.isNotBlank(elasticsrarchRestProperties.getPassword())){
      elasticsearchTemplate.setPassword(elasticsrarchRestProperties.getPassword());
    }
    elasticsearchTemplate.setConnectTimeout(elasticsrarchRestProperties.getConnect_timeout());
    elasticsearchTemplate.setSocketTimeout(elasticsrarchRestProperties.getSocket_timeout());
    elasticsearchTemplate.setConnectionRequestTimeout(elasticsrarchRestProperties.getConnection_request_timeout());
    elasticsearchTemplate.setMaxRetryTimeoutMillis(elasticsrarchRestProperties.getMax_retry_timeout_millis());
    return elasticsearchTemplate;
  }