對於 Spring Boot 應用程式連線 AWS DocumentDB,推薦使用 MongoDB 官方提供的 Java 驅動程式(MongoDB Java Driver)。AWS DocumentDB 是相容 MongoDB 的資料庫服務,因此使用 MongoDB Java Driver 是最佳實踐。
推薦使用的 MongoDB Java Driver 版本
最新穩定版本的 MongoDB Java Driver 4.x 支援 JDK 17 和 Spring Boot 2.7。這裡推薦使用版本 4.7.x。
使用 MongoDB Java Driver 連線 AWS DocumentDB 的步驟
1. 新增 Maven 依賴
在 pom.xml
檔案中新增 MongoDB Java Driver 依賴:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.7.1</version>
</dependency>
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. Java 配置示例
建立一個配置類,用於配置 MongoDB 客戶端連線到 AWS DocumentDB:
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
@Configuration
public class MongoConfig extends AbstractMongoClientConfiguration {
@Override
protected String getDatabaseName() {
return "your-database";
}
@Bean
@Override
public MongoClient mongoClient() {
ConnectionString connectionString = new ConnectionString("mongodb://<username>:<password>@<documentdb-endpoint>:<port>/<database>?ssl=true&retryWrites=false");
MongoClientSettings mongoClientSettings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.build();
return MongoClients.create(mongoClientSettings);
}
}
4. 使用 MongoTemplate 進行資料操作
建立一個簡單的 Spring Boot 應用示例來展示如何使用 MongoTemplate
進行資料操作:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private MongoTemplate mongoTemplate;
public void saveUser(User user) {
mongoTemplate.save(user);
}
public User findUserById(String id) {
return mongoTemplate.findById(id, User.class);
}
}
5. 使用者實體類示例
建立一個簡單的使用者實體類:
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;
}
}
總結
推薦使用 MongoDB 官方的 Java 驅動程式(MongoDB Java Driver)來連線 AWS DocumentDB。在 Spring Boot 專案中,可以使用 MongoDB Java Driver 4.7.x 版本。透過上述配置和示例程式碼,你可以輕鬆地將 Spring Boot 應用程式連線到 AWS DocumentDB,並進行資料操作。