使用Spring Boot、MyBatis Plus和Elasticsearch配置的简单示例

news2024/11/18 9:33:50

在这里插入图片描述

下面是一个使用Spring Boot、MyBatis Plus和Elasticsearch的简单示例:

  1. 首先,在pom.xml文件中添加以下依赖:
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>

<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>6.5.20</version>
</dependency>
  1. 创建一个Spring Boot应用程序:
@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}
  1. 在application.properties文件中配置Elasticsearch:
# Elasticsearch连接配置
spring.data.elasticsearch.cluster-name=elasticsearch-cluster
spring.data.elasticsearch.cluster-nodes=localhost:9200
spring.data.elasticsearch.repositories.enabled=true
spring.data.elasticsearch.repositories.bootstrap-mode=local
spring.data.elasticsearch.repositories.type=elasticsearch
spring.data.elasticsearch.repositories.uri=http://localhost:9200
spring.data.elasticsearch.repositories.settings.number_of_shards=3
spring.data.elasticsearch.repositories.settings.number_of_replicas=1
spring.data.elasticsearch.repositories.settings.index.refresh_interactions=10s
spring.data.elasticsearch.repositories.settings.index.refresh_interval=1s
spring.data.elasticsearch.repositories.settings.index.lifecycle.name=my-index
spring.data.elasticsearch.repositories.settings.index.lifecycle.type=delete
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.alias=rollover
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.max_age=1d
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.actions=create,delete
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.strategy.delete.type=delete
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.strategy.delete.base=0
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.strategy.delete.max_size=10g
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.strategy.delete.max_age=1d

#MyBatis配置
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=com.example.entity

spring.data.elasticsearch.cluster-name:设置Elasticsearch集群的名称。
spring.data.elasticsearch.cluster-nodes:设置Elasticsearch集群中的节点地址。
spring.data.elasticsearch.repositories.enabled:设置是否启用Elasticsearch数据源。
spring.data.elasticsearch.repositories.bootstrap-mode:设置Elasticsearch数据源的启动方式。
spring.data.elasticsearch.repositories.type:设置Elasticsearch数据源的类型。
spring.data.elasticsearch.repositories.uri:设置Elasticsearch数据源的地址。
spring.data.elasticsearch.repositories.settings.number_of_shards:设置Elasticsearch数据源的分片数。
spring.data.elasticsearch.repositories.settings.number_of_replicas:设置Elasticsearch数据源的副本数。
spring.data.elasticsearch.repositories.settings.index.refresh_interactions:设置Elasticsearch数据源的实时更新时间间隔。
spring.data.elasticsearch.repositories.settings.index.refresh_interval:设置Elasticsearch数据源的更新时间间隔。
spring.data.elasticsearch.repositories.settings.index.lifecycle.name:设置Elasticsearch数据源的生命周期名称。
spring.data.elasticsearch.repositories.settings.index.lifecycle.type:设置Elasticsearch数据源的生命周期类型。
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.alias:设置Elasticsearch数据源的自动轮换别名。
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.max_age:设置Elasticsearch数据源的最大自动轮换年限。
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.actions:设置Elasticsearch数据源的自动轮换动作类型。
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.strategy.delete.type:设置Elasticsearch数据源的删除类型。
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.strategy.delete.base:设置Elasticsearch数据源的删除基础地址。
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.strategy.delete.max_size:设置Elasticsearch数据源的最大删除大小。
spring.data.elasticsearch.repositories.settings.index.lifecycle.rollover.strategy.delete.max_age:设置Elasticsearch数据源的最大删除年限。

  1. 创建一个实体类:
@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String username;

    private String password;

    private Integer age;

    //getter and setter methods
}
  1. 创建一个Mapper接口:
public interface UserMapper {
    User findById(Long id);
    List<User> findAll();
    int deleteById(Long id);
}
  1. 创建一个Mapper实现类:
@Mapper
public interface UserMapperImpl extends BaseMapper<User> {
    User findById(Long id);
    List<User> findAll();
    int deleteById(Long id);
}
  1. 创建一个UserService实现类:
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public User findById(Long id) {
        return userMapper.findById(id);
    }

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }

    @Override
    public int deleteById(Long id) {
        return userMapper.deleteById(id);
    }
}
  1. 创建一个UserController实现类:
@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/user/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        User user = userService.findById(id);
        if (user == null) {
            return ResponseEntity.notFound().build();
        }
        return ResponseEntity.ok(user);
    }

    @PostMapping("/user")
    public ResponseEntity<User> createUser(@RequestBody User user) {
        userService.save(user);
        return ResponseEntity.ok(user);
    }

    @DeleteMapping("/user/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
        userService.deleteById(id);
        return ResponseEntity.ok().build();
    }
}
  1. 创建一个UserServiceImpl实现类:
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public User findById(Long id) {
        return userMapper.findById(id);
    }

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }

    @Override
    public int deleteById(Long id) {
        return userMapper.deleteById(id);
    }

    @Override
    public User save(User user) {
        return userMapper.insert(user);
    }

    @Override
    public void update(User user) {
        userMapper.updateByPrimaryKey(user);
    }

    @Override
    public void delete(User user) {
        userMapper.deleteByPrimaryKey(user);
    }
}

以上就是一个简单的Spring Boot、MyBatis Plus和Elasticsearch的示例。在这个示例中,我们创建了一个User实体类,一个UserMapper接口和一个UserService实现类来处理用户的CRUD操作。我们还配置了MyBatis Plus和Elasticsearch,并创建了一个UserController来提供RESTful API来操作用户。

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

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

相关文章

本地文件如何复制到服务器上 180.188.22.X

当我们在远程服务器时&#xff0c;有时会想要直接在本地电脑上复制文本到服务器上&#xff0c;或者把服务器上的文本文件复制到电脑上却无法进行操作。当我们遇到这样的情况&#xff0c;应该如何处理呢。系统如果是Windows的情况下&#xff0c;可以进行以下操作&#xff1a;打开…

【MySQL】不允许你不了解如何分组数据

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集&#xff01; &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指…

Nginx安装、卸载教程(含Window、Linux版、Docker版)

目录 一、下载 二、Linux版安装 2.1 编译安装之前 2.2 编译安装 2.3 启动Nginx 2.4 关于防火墙 2.5 安装成系统服务 三、Linux版卸载&#xff08;彻底&#xff09; 3.1 检查一下Nginx服务是否在运行 3.2 停止Nginx服务 3.3 查找、删除Nginx相关文件 3.4 再使用yum清…

C++11新特性(5):多线程

学习C11&#xff0c;根据网上资料的知识总结。 1. 线程创建 1.1 初始函数 #include <iostream> #include <thread> void myfunc(int &a) {cout << "a in myfunc:" << a << endl; }int main() {int a 1;std::thread mythread(…

Solr框架 02.Solr操作(document操作和query查询)

菜单项目Documents使用办法 其中的document选项&#xff1a; 以XML格式举例 1新增/修改 当id不存在时新增&#xff0c;当id存在修改。 <doc> <field name"id">8</field> <field name"name">明天更大卖</field> <field n…

好处多多的数仓分层是怎么样子的呢?如何创建数仓分层,

一、创建数仓分层 数仓分层是结合对业务场景、实际数据、使用系统的综合分析&#xff0c;对数据模型进行的整体架构设计及层级划分。用于将不同用途的数据&#xff0c;归类划分至不同的分层&#xff0c;便于您更好地组织、管理、维护数据。本文为您介绍如何创建并管理数仓分层…

Nik Dfine 降噪滤镜

Nik Define 是 Nik Collection 中专门用于降噪的滤镜。 Nik Dfine 有三种降噪方式&#xff1a;自动、手动以及精细局部控制。 大部分照片的降噪&#xff0c;用自动模式就可以达到满意效果。 有所侧重的话&#xff0c;可考虑手动降噪或精细局部控制方式降噪。 返回 Ps 后&#x…

JMeter分布式压测,启动执行机器报错: Port already in use: 1099

Problem creating registry: java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use (Bind failed) 当压测量大的时候我们有时候会失败&#xff0c;然后再接着压测&#xff0c;这样就容易造成端口…

vue3框架开发uniapp高仿度小满金融App项目

vue3框架开发uniapp高仿度小满金融App项目 心血来潮写了度小满前端项目使用vue3开发地址&#xff1a;度小满金融 下面是实现效果

Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器

Jenkins Docker Maven Windows 一键部署 Spring Boot 程序到远程 Linux 服务器 文章目录 Jenkins Docker Maven Windows 一键部署 Spring Boot 程序到远程 Linux 服务器一、准备1、环境2、基本流程准备步骤基本思路 3、相关命令4、Dockerfile 文件5、配置远程服务器、安装…

外贸网站推广怎么做?英文外贸网站推广的好处

外贸网站推广是在全球范围内宣传和促销公司的产品或服务&#xff0c;以吸引国际客户和拓展海外市场。 以下是一些常见的外贸网站推广策略和方法&#xff1a; 网站优化&#xff1a;确保你的网站在搜索引擎上获得良好的排名。使用关键词研究和优化技术来提高网站的可见性和搜索引…

PostgreSQL中HOT对cluster的作用

PG中cluster的作用是根据表的索引重新构建一张表&#xff0c;并且表根据该索引进行排序&#xff0c;索引必须提前建好。 注意&#xff1a;cluster操作加ACCESS EXCLUSIVE锁&#xff0c;会阻塞其它任何操作。 我们为什么要运行cluster? PG中的表是堆表&#xff0c;表中行的顺…

SpringMvc接收前端发送的api请求参数问题笔记

SpringMvc接收前端发送的api请求参数问题笔记 get请求参数字符串日期转date接收 需要使用DateTimeFormat注解&#xff0c;来接收前端传的 http://xx.xx.xxx/xsdc?start2023-07-01 15:12:13&end2023-07-02 15:00:00 这种日期参数&#xff1b; 这样获取日期数据就能直接取…

启动一个qemu虚拟机

安装qemu&#xff1a; 编译内核&#xff1a; 编译rootfs&#xff1b; 启动&#xff1a; qemu-system-x86_64 -kernel ./linux-4.14.320/arch/x86_64/boot/bzImage -hda ./busybox-1.36.1/rootfs.img -append "root/dev/sda consolettyS0" -nographic 效果图&am…

乐优购物车微服务过滤拦截器

4.1.2.配置公钥 leyou:jwt:pubKeyPath: D:/heima/rsa/rsa.pub # 公钥地址cookieName: LY_TOKEN # cookie的名称 4.1.3.加载公钥 代码&#xff1a; ConfigurationProperties(prefix "leyou.jwt") public class JwtProperties { ​private String pubKeyPath;// 公…

git远程库GitHub

首先&#xff0c;注册一个GitHub&#xff08;github.com&#xff09;帐号&#xff0c;免费获得Git远程仓库 由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的&#xff0c;所以&#xff0c;需要一点设置&#xff1a; 第1步&#xff1a;创建SSH Key。在用户主目录下&…

学习一波Java语言中的优先队列 PriorityQueue

目录 一、什么是优先队列 二、PriorityQueue 如何使用 三、优先队列的使用场景 一、什么是优先队列 优先队列是一种特殊的队列数据结构&#xff0c;它根据元素的优先级来确定元素的顺序。与普通队列不同的是&#xff0c;优先队列中的元素并不按照插入的先后顺序进行排列&am…

SpringBoot整合logback日志框架详解(提供Gitee源码)

前言&#xff1a;本篇博客主要介绍如何把主流的日志框架快速整合到目前的SpringBoot框架中&#xff0c;对六种日志等级进行介绍以及使用方法。 目录 一、日志级别 1、TRACE 2、DEBUG 3、INFO 4、WARN 5、ERROR 6、FATAL 二、导入pom.xml依赖 三、application.yml配置…

seatunnel-2.3.2 doris数据同步到hive(cdh-6.3.2)首次运行踩坑记录

seatunnel-2.3.2 doris数据同步到hive(cdh-6.3.2)首次运行报错解决&#xff0c;解决的报错如下&#xff1a; 1、java.lang.NoClassDefFoundError: org/apache/hadoop/hive/metastore/api/MetaException 2、java.lang.NoClassDefFoundError: org/apache/thrift/TBase 3、java.la…

arcgis的属性显示bug

arcgis中&#xff0c;右键图层属性可以查看图层的属性信息&#xff0c;比如坐标系、波段数、行列数等。 但是今天实验的时候发现&#xff0c;这个属性中显示的波段最大最小值并非真值。 该图层实际范围为&#xff1a;30~711。 在arcgis属性中&#xff0c;显示范围为0~651。 在…