Spring Data MongoDB 操作 document DB 的详细示例

使用 Spring Data MongoDB 操作 AWS DocumentDB 是一种高效且常见的做法。以下是详细的示例,展示如何配置和使用 Spring Data MongoDB 连接和操作 AWS DocumentDB。

步骤 1:添加 Maven 依赖

pom.xml 文件中添加 Spring Data MongoDB 和 Spring Boot Starter Web 的依赖:

<dependencies>
    <!-- Spring Boot Starter Data MongoDB -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Boot Starter Test -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

步骤 2:配置 Spring Boot 应用

application.propertiesapplication.yml 文件中添加 MongoDB 连接配置:

# application.yml
spring:
  data:
    mongodb:
      uri: mongodb://<username>:<password>@<documentdb-endpoint>:<port>/<database>?ssl=true&retryWrites=false
      database: <database>

步骤 3:创建实体类和仓库接口

创建一个简单的用户实体类:

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;
    }
}

创建一个用户仓库接口:

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

@Repository
public interface UserRepository extends MongoRepository<User, String> {
}

步骤 4:使用仓库进行数据操作

在服务类中使用 UserRepository 进行数据操作:

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 User findUserById(String id) {
        return userRepository.findById(id).orElse(null);
    }

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

    public void deleteUserById(String id) {
        userRepository.deleteById(id);
    }
}

步骤 5:创建控制器

创建一个控制器来处理用户的 HTTP 请求:

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

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable String id) {
        return userService.findUserById(id);
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userService.findAllUsers();
    }

    @DeleteMapping("/{id}")
    public void deleteUserById(@PathVariable String id) {
        userService.deleteUserById(id);
    }
}

步骤 6:启动类

确保你的 Spring Boot 应用启动类位于正确的包下,并启用了 Spring Data MongoDB:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DocumentDbApplication {

    public static void main(String[] args) {
        SpringApplication.run(DocumentDbApplication.class, args);
    }
}

总结

通过上述步骤,你可以使用 Spring Data MongoDB 连接和操作 AWS DocumentDB。这种方法充分利用了 Spring Data MongoDB 的特性,使得操作文档数据库更加高效和简便。

posted @ 2024-07-09 01:17  gongchengship  阅读(11)  评论(0编辑  收藏  举报