springboot連線 DocumentDB 推薦用什麼 SDK

gongchengship發表於2024-07-09

對於 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.propertiesapplication.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,並進行資料操作。

相關文章