【数据库系列】Spring Boot 集成 MongoDB Template 的详细步骤

242 阅读3分钟

Spring Boot 集成 MongoDB Template 的详细步骤.png

引言

Spring Boot 是一个快速开发框架,使 Java 开发者能够轻松创建独立的、生产级别的 Spring 应用程序。MongoDB 是一个流行的 NoSQL 数据库,适合处理大量非结构化数据。本篇文章将详细介绍如何在 Spring Boot 3.4.0 中集成 MongoDB Template,从零开始构建一个简单的应用程序。

准备工作

1. 环境要求

  • Java 17 或更高版本
  • Maven 3.6.0 或更高版本
  • MongoDB 数据库(可以本地安装或使用 MongoDB Atlas)

2. 创建 Spring Boot 项目

可以使用 Spring Initializr 快速创建项目:

  • 访问 Spring Initializr
  • 选择以下配置:
    • Project: Maven Project
    • Language: Java
    • Spring Boot: 3.4.0
    • Project Metadata:
      • Group: com.example
      • Artifact: mongodb-demo
      • Name: mongodb-demo
      • Package Name: com.example.mongodb
      • Packaging: Jar
      • Java: 17
  • 依赖项选择:
    • Spring Web
    • Spring Data MongoDB

点击 Generate 下载项目,并解压。

3. 导入项目

使用 IDE(如 IntelliJ IDEA 或 Eclipse)导入刚刚创建的 Maven 项目。

配置 MongoDB

1. 添加 MongoDB 依赖

pom.xml 中,确保以下依赖存在:

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

2. 配置数据库连接

src/main/resources/application.properties 中,添加 MongoDB 的连接配置:

spring.data.mongodb.uri=mongodb://localhost:27017/testdb

这里的 testdb 是你要连接的数据库名,确保 MongoDB 服务正在运行。

创建数据模型

1. 创建实体类

src/main/java/com/example/mongodb 目录下,创建一个名为 User.java 的实体类:

package com.example.mongodb;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "users")
public class User {
    @Id
    private String id;
    private String name;
    private String email;

    // Getters and Setters
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}

创建 Repository

1. 创建数据访问接口

src/main/java/com/example/mongodb 目录下,创建一个名为 UserRepository.java 的接口:

package com.example.mongodb;

import org.springframework.data.mongodb.repository.MongoRepository;

public interface UserRepository extends MongoRepository<User, String> {
    User findByEmail(String email);
}

创建服务层

1. 创建服务类

src/main/java/com/example/mongodb 目录下,创建一个名为 UserService.java 的类:

package com.example.mongodb;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public User saveUser(User user) {
        return userRepository.save(user);
    }

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public User getUserByEmail(String email) {
        return userRepository.findByEmail(email);
    }
}

创建控制器

1. 创建 REST 控制器

src/main/java/com/example/mongodb 目录下,创建一个名为 UserController.java 的类:

package com.example.mongodb;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping
    public ResponseEntity<User> createUser(@RequestBody User user) {
        User savedUser = userService.saveUser(user);
        return ResponseEntity.ok(savedUser);
    }

    @GetMapping
    public ResponseEntity<List<User>> getAllUsers() {
        List<User> users = userService.getAllUsers();
        return ResponseEntity.ok(users);
    }

    @GetMapping("/{email}")
    public ResponseEntity<User> getUserByEmail(@PathVariable String email) {
        User user = userService.getUserByEmail(email);
        return ResponseEntity.ok(user);
    }
}

运行应用程序

1. 启动 MongoDB 服务

确保 MongoDB 服务正在运行。如果使用本地 MongoDB,可以通过命令行启动:

mongod

2. 运行 Spring Boot 应用

在 IDE 中运行 MongodbDemoApplication.java,或在命令行中使用 Maven:

mvn spring-boot:run

3. 测试 API

可以使用 Postman 或 curl 测试 API。

  • 创建用户

    curl -X POST http://localhost:8080/api/users -H "Content-Type: application/json" -d '{"name":"John Doe", "email":"john@example.com"}'
    
  • 获取所有用户

    curl http://localhost:8080/api/users
    
  • 通过邮箱获取用户

    curl http://localhost:8080/api/users/john@example.com
    

总结

通过以上步骤,我们成功地在 Spring Boot 3.4.0 中集成了 MongoDB Template,创建了一个简单的用户管理 API。可以进一步扩展,添加更多功能,例如用户更新、删除等。希望这篇文章能帮助你理解如何使用 Spring Boot 和 MongoDB 开发应用程序!