SpringBoot SpringBoot 开发实用篇 4 数据层解决方案 4.16 SpringBoot 整合 ES 客户端操作

news2025/1/10 11:53:41

SpringBoot

【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】

SpringBoot 开发实用篇

文章目录

      • SpringBoot
      • SpringBoot 开发实用篇
      • 4 数据层解决方案
        • 4.16 SpringBoot 整合 ES 客户端操作
          • 4.16.1 环境准备
          • 4.16.2 整合ES
          • 4.16.3 小结

4 数据层解决方案

4.16 SpringBoot 整合 ES 客户端操作

4.16.1 环境准备

创建一个新的模块工程

在这里插入图片描述

依赖一个也不勾,直接创建

在这里插入图片描述

在这里插入图片描述

OK, 一个全新的SpringBoot 工程

导入相关依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.11</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

就这四个

在这里插入图片描述

创建一个Book实体类

package com.dingjiaxiong.domain;

import lombok.Data;

/**
 * ClassName: Book
 * date: 2022/10/20 19:49
 *
 * @author DingJiaxiong
 */

@Data
public class Book {
    
    private Integer id;
    private String type;
    private String name;
    private String description;
    
}

创建dao

package com.dingjiaxiong.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dingjiaxiong.domain.Book;
import org.apache.ibatis.annotations.Mapper;

/**
 * ClassName: BookDao
 * date: 2022/10/20 19:51
 *
 * @author DingJiaxiong
 */

@Mapper
public interface BookDao extends BaseMapper<Book> {
}

配置

spring:
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: root
      password: 200039


mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_
      id-type: auto

  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述

就是这样,测试一下

package com.dingjiaxiong;

import com.dingjiaxiong.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Springboot18EsApplicationTests {

    @Autowired
    private BookDao bookDao;

    @Test
    void fn(){
        bookDao.selectById(1);
    }

}

在这里插入图片描述

OK,没问题

4.16.2 整合ES

【导入坐标】

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

在这里插入图片描述

【配置】

在这里插入图片描述

elasticsearch:
  uris: http://localhost:9200

在这里插入图片描述

现在就可以进行测试了

当然【这以上的操作都是…过时的,低版本的】【我真的会谢】

重新来

【导入坐标】

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>

在这里插入图片描述

【修改配置】

在这里插入图片描述

不写,甚至uri 都不告诉springboot,就得自己硬编码…离谱【我感觉现在或许有了,但是笔者就不研究了】

再次开始测试

在这里插入图片描述

我giao,已经过时了【MD,咋办,硬用】

package com.dingjiaxiong;

import com.dingjiaxiong.dao.BookDao;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Springboot18EsApplicationTests {

    private RestHighLevelClient client;

    @Test
    void testCreateClient(){
        HttpHost host = HttpHost.create("http://localhost:9200");
        RestClientBuilder builder = RestClient.builder(host);
        client = new RestHighLevelClient(builder);
    }

}

运行结果

在这里插入图片描述

没报错,说明创建成功了

创建索引

@Test
void testCreateIndex() throws IOException {
    HttpHost host = HttpHost.create("http://localhost:9200");
    RestClientBuilder builder = RestClient.builder(host);
    client = new RestHighLevelClient(builder);

    CreateIndexRequest request = new CreateIndexRequest("books");
    client.indices().create(request , RequestOptions.DEFAULT);

    client.close();
}

测试之前先把之前的books 索引删掉

在这里插入图片描述

运行测试

在这里插入图片描述

OK,成功了

查一下

在这里插入图片描述

OK,一个全新的books 索引

【现在在我们的测试中,每次都要创建客户端,结束后关闭客户端】

有个快捷的办法【Alt + insert】

在这里插入图片描述

@BeforeEach
void setUp() {
    HttpHost host = HttpHost.create("http://localhost:9200");
    RestClientBuilder builder = RestClient.builder(host);
    client = new RestHighLevelClient(builder);
}

@AfterEach
void tearDown() throws IOException {
    client.close();
}

在这里插入图片描述

这样就不用每次都写了

在这里插入图片描述

回顾一下

在这里插入图片描述

在这里插入图片描述

现在是2022年10月20日,可能已经有了

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.16.3 小结
  1. High Leven Client
  2. 客户端初始化
  3. 客户端改进

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/21650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计停车场收费管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

DP入门(一)

前言&#xff1a;由于作者经常卡力扣周赛最后一题的dp&#xff0c;因此决定痛改前非&#xff0c;从头做人&#xff0c;争取下次能做出最后一道dp ak周赛&#xff01;呜呜呜加油~~ 因此 这个系列的文章不会教 dp &#xff0c;只会讲刷题思路&#xff0c;目前的计划是先更 lc 的题…

[Spring Cloud] RestTemplate跨进程调用

✨✨个人主页:沫洺的主页 &#x1f4da;&#x1f4da;系列专栏: &#x1f4d6; JavaWeb专栏&#x1f4d6; JavaSE专栏 &#x1f4d6; Java基础专栏&#x1f4d6;vue3专栏 &#x1f4d6;MyBatis专栏&#x1f4d6;Spring专栏&#x1f4d6;SpringMVC专栏&#x1f4d6;SpringBoot专…

【k8s】5、资源管理命令-声明式

文章目录一、 yaml和json介绍1、yuml语言介绍2、k8s支持的文件格式3、yaml和json的主要区别二、声明式对象管理1、命令式对象配置2、声明式对象配置3、声明式对象管理命令介绍三、编写资源配置清单1、 编写yaml文件2、 启动并查看资源3、创建service服务对外提供访问测试4、创建…

MySQL介绍

MySQL数据库最初是由瑞典MySQL AB公司开发&#xff0c;2008年1月16号被Sun公司收购。2009年&#xff0c;SUN又被Oracle收购。MySQL是目前IT行业最流行的开放源代码的数据库管理系统&#xff0c;同时它也是一个支持多线程高并发多用户的关系型数据库管理系统。MySQL之所以受到业…

基于51单片机的舞蹈机器人四路步进电机控制仿真

资料编号&#xff1a;091 下面是相关功能视频演示&#xff1a; 91-基于51单片机的舞蹈机器人四路步进电机控制仿真&#xff08;源码仿真全套资料&#xff09;功能介绍&#xff1a;通过51单片机控制4个步进电机旋转&#xff0c;模拟出机器人的四肢动作&#xff0c;全套资料齐全…

ES6 入门教程 17 Promise 对象 17.2 基本用法

ES6 入门教程 ECMAScript 6 入门 作者&#xff1a;阮一峰 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录ES6 入门教程17 Promise 对象17.2 基本用法17 Promise 对象 17.2 基本用法 ES6 规定&#xff0c;Promise对象是一个构造函数&#xff0…

【Java高级】一篇文章带你搞懂线程

目录 | 线程概述 | 线程创建 方式一&#xff1a;继承 Thread 类 方式二&#xff1a;实现 Runnable 接口 一些小细节 方式三&#xff1a;实现 Callable 接口&#xff08;JDK1.8&#xff09; | 线程生命周期 生命周期概述 [获取线程信息] 方法 set/getName current [运…

ArcGIS绘制北半球俯视投影地图

做全球碳水循环,植被变化,极端气候相关研究的同学都知道。北半球是核心,因为北半球的核心区域(东亚湿润区,中亚干旱半干旱,青藏高原,阿拉伯半岛,非洲北部沙漠以及美国西部等等核心区): 对于北半球的展示一般采用下面的图: 那么该如何做呢? 熟悉地图学的同学都知道…

Dubbo-聊聊Dubbo协议

前言 Dubbo源码阅读分享系列文章&#xff0c;欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrapper 注册中心 Dubbo-聊聊注册中心的设计 Dubbo-时间轮设计 通信 Dubbo-聊聊通信模块设计 什么是协议 在网络交…

【FreeRTOS】FreeRTOS删除任务vTaskDelete()

使用说明&#xff1a; 任务中。小时 &#xff08;任务句柄_t xTask&#xff09;; INCLUDE_vTaskDelete必须定义为1&#xff0c;才能使用此函数。有关更多信息&#xff0c;请参见RTOS配置文档。 从RTOS内核管理中删除任务。正在删除的任务将从所有就绪、阻止、暂停和事件列表中删…

CEAC 之《计算机应用助理工程师》1

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;微微的猪食小窝 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 微微的猪食小窝 原创 收录于专栏 【CEAC证书】 1组合框有3种不同的类型&#xff0c;这3种类型是下拉式组合框、简单组合框、下拉式列表框&…

12. PyQt5实现多页面切换之QTabBar

PyQt5 QTabBar 类 QTabBar 类直接继承自 QWidget。该类提供了一个选项卡栏&#xff0c;该类仅提供了一个选项卡&#xff0c; 并没有为每个选项卡提供相应的页面&#xff0c;因此要使选项卡栏实际可用&#xff0c;需要自行为每个选项 卡设置需要显示的页面&#xff0c;可以通过 …

【k8s】6、pod详解

文章目录一、pod介绍1、pod的基础概念2、pod定义&#xff08;资源清单&#xff09;二、Pod中的容器配置1、基本配置2、镜像拉取&#xff08;imagePullPolicy&#xff09;3、启动命令&#xff08;command&#xff09;4、环境变量&#xff08;env&#xff09;5、端口设置&#xf…

应急响应-计划任务排查

计划任务排查 由于很多计算机都会自动加载“计划任务”&#xff0c;“计划任务”也是恶意病毒实现持久化驻留的一种常用手段&#xff0c;因此在应急响应事件排查时需要进行排查。通俗的讲会定期执行某些操作。 Windows计划任务排查 任务计划是Windows系统的一个预置实现某些…

【数据结构】二叉树的顺序存储结构 —— 堆

文章目录前言二叉树的顺序存储堆的概念和结构堆的实现结构的定义接口总览初始化销毁插入向上调整删除向下调整取堆顶数据计算堆大小判空打印堆完整代码Heap.hHeap.ctest.c结语前言 今天&#xff0c;我们开始二叉树的学习。本篇博客的内容为 介绍二叉树的顺序存储 和 堆的实现。…

【滤波跟踪】基于matlab不变扩展卡尔曼滤波器对装有惯性导航系统和全球定位系统IMU+GPS进行滤波跟踪【含Matlab源码 2232期】

⛄一、简介 针对室内定位中的非视距&#xff08;Non-Line-of-Sight,NLOS&#xff09;现象,提出一个新型算法进行识别,同时有效缓解其影响.主要通过超宽带&#xff08;Ultra-Wideband,UWB&#xff09;定位系统与惯性导航系统&#xff08;Inertial Navigation System,INS&#x…

酒店管理系统的设计与实现

Word下载链接如下&#xff1a; https://download.csdn.net/download/yw1990128/87096359 一 设计背景 1.1 课题现状 随着国家社会经济水平的提升&#xff0c;各酒店的发展速度越来越快&#xff0c;入住人员也越来越多。酒店房间的管理要求也愈来愈大&#xff0c;所以很多酒店正…

45.Django模板

1.django模板配置 1.1 Django模板概述 作为一个Web框架&#xff0c;Django需要一种方便的方式来动态生成HTML。最常用的方法依赖于模板。模板包含所需HTML输出的静态部分以及描述如何插入动态内容的特殊语法。 ​ 对模板引擎的一般支持和Django模板语言的实现都存在于 djang…

Linux下的NFS服务(包含windows10下的nfs搭建)

目录 1.NFS服务介绍 2.Linux下搭建NFS服务 &#xff08;1&#xff09;下载NFS服务端 &#xff08;2&#xff09;新建一个共享文件 &#xff08;3&#xff09;修改NFS服务配置文件 &#xff08;4&#xff09;重新启动NFS服务 &#xff08;5&#xff09;显示查看共享的文件…