以下是一个Spring Boot应用程序,集成MongoDB实现数据的存储和查询。我们将使用Spring Data MongoDB模块来实现这个示例。
创建Spring Boot项目
首先,确保你在项目的pom.xml
文件中添加了以下依赖:
<dependencies>
<!-- Spring Boot Starter Data MongoDB -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>2.3.11.RELEASE</version>
</dependency>
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.12.RELEASE</version>
</dependency>
</dependencies>
配置MongoDB
在项目的application.yml
文件中添加MongoDB相关的配置:
spring:
data:
mongodb:
uri: mongodb://127.0.0.1:27017/demo
创建实体类
创建一个实体类,它将映射到MongoDB的集合:
package com.example.mongodbdemo.model;
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 int age;
// 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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
创建Repository接口
创建一个Spring Data MongoDB repository接口:
package com.example.mongodbdemo.repository;
import com.example.mongodbdemo.model.User;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends MongoRepository<User, String> {
}
创建服务层
创建一个服务层来封装业务逻辑:
package com.example.mongodbdemo.service;
import com.example.mongodbdemo.model.User;
import com.example.mongodbdemo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User saveUser(User user) {
return userRepository.save(user);
}
public Optional<User> getUserById(String id) {
return userRepository.findById(id);
}
public List<User> getAllUsers() {
return userRepository.findAll();
}
public void deleteUser(String id) {
userRepository.deleteById(id);
}
}
创建控制器
创建一个控制器来处理HTTP请求:
package com.example.mongodbdemo.controller;
import com.example.mongodbdemo.model.User;
import com.example.mongodbdemo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping
public User saveUser(@RequestBody User user) {
return userService.saveUser(user);
}
@GetMapping("/{id}")
public Optional<User> getUserById(@PathVariable String id) {
return userService.getUserById(id);
}
@GetMapping
public List<User> getAllUsers() {
return userService.getAllUsers();
}
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable String id) {
userService.deleteUser(id);
return "User deleted successfully!";
}
}
Spring Boot 主类
创建Spring Boot应用程序的主类:
package com.example.mongodbdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MongoDBDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MongoDBDemoApplication.class, args);
}
}
运行应用程序
启动Spring Boot应用程序,确保MongoDB服务器正在运行。然后,你可以使用Postman或其他HTTP客户端来测试API:
-
存储数据:
POST http://localhost:8080/users Body: { "name": "John", "age": 30 }
-
查询数据:
GET http://localhost:8080/users/{id}
-
查询所有数据:
GET http://localhost:8080/users
-
删除数据:
DELETE http://localhost:8080/users/{id}
解释
-
依赖管理:
- 使用Spring Boot Starter Data MongoDB简化MongoDB集成。
- 使用Spring Boot Starter Web简化Web应用开发。
-
配置:
- 在
application.yml
中指定MongoDB服务器的地址和数据库名称。
- 在
-
实体类:
- 创建一个简单的
User
类来表示存储的数据对象,并使用@Document
注解将其映射到MongoDB的集合。
- 创建一个简单的
-
Repository接口:
- 使用Spring Data MongoDB repository接口简化数据访问操作。
-
服务层:
- 封装业务逻辑,提供数据存储和查询的高层接口。
-
控制器:
- 处理HTTP请求,提供RESTful API进行数据存储和查询。
-
mongoDB 版本:
- 版本参考,提供spring Data MongoDB 与 Mongo Server对应关系。
- 版本参考,提供spring Data MongoDB 与 Mongo Server对应关系。
通过这个示例,你可以轻松地使用Spring Boot集成MongoDB来实现数据的存储和查询功能。