# springboot-mysql8-es7 **Repository Path**: futurelearning-materials/springboot-mysql8-es7 ## Basic Information - **Project Name**: springboot-mysql8-es7 - **Description**: SpringBoot集成Es7具体案例。 1、mysql8与es7数据同步; 2、实现基于mysql与es7的CRUD功能; - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-05-07 - **Last Updated**: 2025-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Springboot-mysql8-es7 ## 项目简介 该项目是一个基于 **Spring Boot 2.x**、**MySQL 8**、**Elasticsearch 7** 和 **Swagger 2** 的文章管理系统,提供了对文章的增、删、改、查功能,包括通过 **MySQL** 和 **Elasticsearch** 进行分页查询的功能。使用 **MyBatis-Plus** 作为 MySQL 数据操作工具,结合 **Elasticsearch RestTemplate** 进行 Elasticsearch 查询。项目还集成了 **Swagger 2**,自动生成 API 文档,方便进行接口调用和测试。 ## 技术栈 - **Spring Boot 2.x** - **MySQL 8** - **Elasticsearch 7** - **MyBatis-Plus** (用于 MySQL 数据库操作) - **Spring Data Elasticsearch** (用于 Elasticsearch 查询) - **Swagger 2** (用于 API 文档生成) - **Druid** (用于数据库连接池) ## 项目结构 ```css springboot-mysql8-es7/ ├── sql/ │ └── init.sql ├── src/ │ └── main/ │ ├── java/ │ │ └── net/ │ │ └── skystudio/ │ │ └── demo/ │ │ ├── controller/ │ │ │ └── ArticleController.java │ │ ├── service/ │ │ │ └── ArticleService.java │ │ ├── model/ │ │ │ └── Article.java │ │ ├── mapper/ │ │ │ └── ArticleMapper.java │ │ ├── repository/ │ │ │ └── ArticleRepository.java │ │ └── config/ │ │ │ └── SwaggerConfig.java │ │ ├── Article.java │ └── resources/ │ ├── application.yml │ ├── mapper/ │ └── ArticleMapper.xml ├── pom.xml └── README.md ``` ## 环境要求 - **JDK 1.8** 或更高版本 - **MySQL 8** 数据库 - **Elasticsearch 7.x** 实例 ## 配置说明 ### 1. **MySQL 配置** #### 数据库初始化 使用以下 SQL 脚本初始化数据库: ```sql CREATE DATABASE IF NOT EXISTS article_db; USE article_db; CREATE TABLE IF NOT EXISTS `article` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `title` VARCHAR(255) NOT NULL, `subtitle` VARCHAR(255), `content` TEXT, PRIMARY KEY (`id`) ); ``` ### 2. **Elasticsearch 配置** 确保您已经配置并运行 **Elasticsearch 7.x**。默认情况下,Elasticsearch 将监听在 `http://localhost:9200`。如果您的 Elasticsearch 配置不同,请更新 `application.yml` 中的配置。 ### 3. **`application.yml` 配置** ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/springboot-mysql-es?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 username: your_username password: your_password driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource hikari: maximum-pool-size: 10 datasource: druid: initial-size: 5 max-active: 20 min-idle: 5 validation-query: SELECT 1 validation-query-timeout: 3 test-while-idle: true jpa: hibernate: ddl-auto: update show-sql: true elasticsearch: rest: uris: http://localhost:9200 # 配置 Elasticsearch 地址 username: elastic password: changeme # MyBatis-Plus 分页插件配置 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` ### 4. **Swagger 2 配置** Swagger 配置位于 `SwaggerConfig.java` 中,启用了 API 文档生成,默认文档将托管在 `http://localhost:8080/swagger-ui/`。 ### 5. **Druid 数据库连接池配置** 在 `application.yml` 文件中,配置了 **Druid** 数据库连接池。确保根据您的 MySQL 实例修改数据库连接的 URL、用户名和密码。 ## 使用方法 ### 1. **克隆项目** ``` bash 复制代码 git clone https://gitee.com/nicky1224/springboot-mysql8-es7.git cd springboot-mysql8-es7 ``` ### 2. **安装依赖** 使用 Maven 安装项目依赖: ```shell bash 复制代码 mvn clean install ``` ### 3. **运行项目** 运行 Spring Boot 项目: ```shell bash 复制代码 mvn spring-boot:run ``` 项目启动后,默认访问地址为 `http://localhost:8080`。 ### 4. **访问 Swagger UI** Swagger UI 提供了自动生成的 API 文档界面,您可以在浏览器中访问: ```shell bash 复制代码 http://localhost:8080/swagger-ui/ ``` 在该界面中,您可以看到所有的 API 列表,接口参数及返回数据的格式,并能够直接在页面中调用接口进行测试。 ## API 接口 ### 1. **根据关键字在 Elasticsearch 中进行分页查询** - **URL**: `/api/articles/list` - **请求方式**: `GET` - 请求参数: - `keyword`: 搜索关键字 - `page`: 页码 - `size`: 每页条数 - 返回: - `Page
` Elasticsearch 查询结果。 ### 2. **综合查询文章** - **URL**: `/api/articles/search` - **请求方式**: `GET` - 请求参数: - `page`: 页码 - `size`: 每页条数 - `keyword` (可选): 搜索关键字 - 返回: - `List
` 综合查询结果。 ## 常见问题 ### 1. **MySQL 无法连接** - 确保您已正确配置 MySQL 连接信息,并且数据库已经创建并且可以访问。 - 检查 MySQL 是否允许外部连接。 ### 2. **Elasticsearch 无法连接** - 确保您的 Elasticsearch 实例正在运行,并且可以通过 `http://localhost:9200` 访问。 ### 3. **Swagger UI 无法加载** - 确保项目正常运行,Swagger UI 默认地址是 `http://localhost:8080/swagger-ui/`。如果无法加载,请检查控制台日志,确保没有启动错误。 ## 贡献 欢迎贡献代码!如果您有改进建议或发现 bug,请提交 issue 或 pull request。 ## License MIT License ```markdown markdown 复制代码 ## 说明 1. **项目简介**:概述了整个项目的功能和使用的技术栈。 2. **环境要求**:列出了项目的必要环境和配置。 3. **配置说明**:详细介绍了数据库、Elasticsearch 和 Swagger 的配置。 4. **使用方法**:描述了如何克隆项目、安装依赖、运行项目以及访问 Swagger UI。 5. **API 接口**:列出了项目中的各个接口以及请求参数和返回值。 6. **常见问题**:解决一些可能遇到的常见问题,帮助开发者更容易部署和运行项目。 这个 `README.md` 文件可以帮助用户理解项目结构、配置方法和如何使用 API。 ```