使用 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.properties
或 application.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 的特性,使得操作文件資料庫更加高效和簡便。