# Springboot-MongoDB **Repository Path**: joker_dj/springboot-mongo-db ## Basic Information - **Project Name**: Springboot-MongoDB - **Description**: 这是一个使用Spring Boot框架集成MongoDB数据库的示例项目,通过MongoPlus增强库简化MongoDB的操作。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-31 - **Last Updated**: 2025-10-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBoot MongoDB 集成示例 这是一个使用Spring Boot框架集成MongoDB数据库的示例项目,通过MongoPlus增强库简化MongoDB的操作。 ## 技术栈 - Java 21 - Spring Boot 3.5.5 - MongoPlus 2.1.9 (MongoDB增强库) - Lombok - Docker & Docker Compose (用于MongoDB容器化部署) ## 项目结构 ``` SpringbootMongoDB/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── springboot/ │ │ │ ├── SpringbootMongoDbApplication.java # 应用程序入口 │ │ │ ├── entity/ │ │ │ │ └── Users.java # 用户实体类 │ │ │ └── service/ │ │ │ ├── UsersService.java # 用户服务接口 │ │ │ └── impl/ │ │ │ └── UsersServiceImpl.java # 用户服务实现 │ │ └── resources/ │ │ └── application.yml # 应用配置文件 │ └── test/ │ └── java/ │ └── com/ │ └── springboot/ │ └── SpringbootMongoDbApplicationTests.java # 测试类 ├── mongodb/ # MongoDB数据目录 ├── docker-compose.yml # Docker Compose配置 ├── pom.xml # Maven项目配置 ├── mvnw # Maven包装器脚本(Unix) └── mvnw.cmd # Maven包装器脚本(Windows) ``` ## 快速开始 ### 前提条件 - JDK 21 - Maven - Docker & Docker Compose (可选,用于容器化部署MongoDB) ### 使用Docker启动MongoDB ```bash # 在项目根目录下运行 docker-compose up -d ``` 这将启动一个MongoDB实例,配置如下: - 端口: 27017 - 用户名: root - 密码: 123456 - 数据库: admin (认证数据库) - 数据存储: ./mongodb目录 ### 不使用Docker (使用本地MongoDB) 确保你有一个运行中的MongoDB实例,并根据你的MongoDB配置修改`application.yml`文件。 ### 构建和运行应用 ```bash # 使用Maven包装器构建项目 ./mvnw clean package # 运行应用 java -jar target/SpringbootMongoDB-0.0.1-SNAPSHOT.jar ``` ## 功能说明 这个示例项目展示了如何使用Spring Boot和MongoPlus与MongoDB进行交互,实现了基本的用户CRUD操作: - 创建用户 - 查询用户 - 更新用户 - 删除用户 ## 代码示例 ### 实体类定义 ```java @Data public class Users { @ID //使用ID注解,标注此字段为MongoDB的_id private String id; private String name; private Long age; private String email; } ``` ### 服务接口 ```java public interface UsersService extends IService { } ``` ### 服务实现 ```java @Service public class UsersServiceImpl extends ServiceImpl implements UsersService { } ``` ### 测试用例 ```java @SpringBootTest class SpringbootMongoDbApplicationTests { @Autowired private UsersService usersService; @Test public void testInsert() { System.out.println(("----- insert method test ------")); Users users = new Users(); users.setName("张三"); users.setAge(18L); users.setEmail("zhangsan@126.com"); usersService.save(users); } @Test public void testSelect() { System.out.println(("----- selectAll method test ------")); List userList = usersService.list(); userList.forEach(System.out::println); } } ``` ## 配置说明 ### application.yml ```yaml mongo-plus: data: mongodb: host: 127.0.0.1 #ip port: 27017 #端口 database: test #数据库名 username: root #用户名 password: 123456 #密码 authenticationDatabase: admin #验证数据库 connectTimeoutMS: 50000 #连接超时时间(毫秒) ``` ## MongoPlus特性 本项目使用MongoPlus而不是标准的Spring Data MongoDB,MongoPlus提供了以下优势: 1. 类似MyBatis-Plus的API设计,对于熟悉MyBatis-Plus的开发者更友好 2. 简化的CRUD操作 3. 强大的条件构造器 4. 自动填充功能 5. 乐观锁插件 ## 注意事项 - 确保MongoDB服务已启动并可访问 - 默认配置使用本地MongoDB (127.0.0.1:27017) - 如果修改了MongoDB的连接信息,需要相应地更新application.yml文件 ## 进一步改进 - 添加控制器层实现RESTful API - 增加更多的业务逻辑 - 添加安全认证 - 实现分页查询 - 添加更全面的单元测试和集成测试