springboot1.x整合elasticsearch5.x

SpringBoot 对于 Elasticsearch的支持

spring本身有对于Elasticsearch的支持,但是支持的版本比较低,要使用低版本的springboot,
也只能使用低版本的ElasticSearch,但是要使用高版本的Elasticsearch就需要自己整合,本文介绍了一种集成方式。

集成思路

springboot支持自动配置,并且少配置,如果采用原来的配置方式的话,少不了在配置中用注解引用资源文件,这样方式也能
实现集成,但不是期望的方式,所以采用了自动配置的方式,将内置的一些配置通过spring的配置自动读取实现。
整合高版本的ElasticSearch需要配置客户端的client,那就配置一个bean交给spring去管理。

autoconfigure的实现

这里写图片描述

这里面采用了lombok的加持,所以不需要使用getter和setter方法,这里面定义了简单的配置,如果需要拓展,添加里面的配置即可

ConfigurationProperties

标记为spring的application中的配置属性,这样在application的配置中添加文件即可,不需要 @Value 的方式进行获取配置,获取方式如下

这里写图片描述

Client的配置

上面实现了一个配置文件中的获取,下面需要实现一个客户端的定义,这里面应用了下面的依赖

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
        </dependency>

剩下的就是将客户端的client交给spring管理,最好的方式就是定义成spring的bean,bean的定义方式如下:
这里写图片描述

这样最简单的一个Client就初始化出来了,剩下的就是具体业务调用了。

最后一步

对应的Client初始化出来了,配置信息也加载进来了,这些怎么交给spring,换句话说怎么能让spring加载他们,采用了 factories 的方式,先定义了一个整合的类,这个类整合了client和properties,具体定义如下:

这里写图片描述

这个类中引入了配置和配置,这个类本身也被标注成 Configuration, 这样一个组装的版的配置就完成了, 剩下的就是将这个注册到spring上了,这里使用的是 spring.factories 方式

这里写图片描述

到此,大功告成。

源码下载地址 springboot1.x整合elasticsearch5.x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot 2.6.x中,可以使用Spring Data Elasticsearch整合Elasticsearch。Spring Data Elasticsearch提供了一组用于构建Elasticsearch应用程序的API,并且可以轻松地与Spring Boot集成。下面是整合步骤: 1. 添加Spring Data Elasticsearch依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> ``` 2. 配置Elasticsearch连接信息: 在application.properties中添加以下配置: ``` spring.data.elasticsearch.cluster-name=elasticsearch spring.data.elasticsearch.cluster-nodes=localhost:9300 ``` 其中,cluster-name为Elasticsearch集群名称,cluster-nodes为Elasticsearch节点地址。 3. 创建Elasticsearch实体类: ``` @Document(indexName = "user", type = "_doc") public class User { @Id private String id; private String name; private int age; // getters and setters } ``` 其中,@Document注解用于指定索引名称和类型,@Id注解用于指定文档ID。 4. 创建Elasticsearch仓库类: ``` @Repository public interface UserRepository extends ElasticsearchRepository<User, String> { } ``` 其中,UserRepository继承ElasticsearchRepository,可以直接使用Spring Data Elasticsearch提供的方法进行数据操作。 5. 在Service中使用Elasticsearch仓库类: ``` @Service public class UserService { @Autowired private UserRepository userRepository; public void save(User user) { userRepository.save(user); } public User findById(String id) { return userRepository.findById(id).orElse(null); } public void deleteById(String id) { userRepository.deleteById(id); } public List<User> findAll() { return (List<User>) userRepository.findAll(); } } ``` 其中,save、findById、deleteById、findAll方法都是由ElasticsearchRepository提供的。 至此,Spring Boot 2.6.x整合Elasticsearch的步骤就完成了。通过使用Spring Data Elasticsearch,我们可以轻松地进行CRUD操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值