Mục lục
Giới thiệu
Phần này đề cập đến việc triển khai Mongock cho MongoDB java Driver 3. x và 4. x
Tùy chọn trình điều khiển MongoDB và khả năng tương thích
Trình điều khiển MongockThư viện trình điều khiểnKhả năng tương thích phiên bảnmongodb-sync-v4-driverorg. mongodb. mongodb-driver-sync4. X. Xmongodb-v3-driverorg. mongodb. mongo-java-driver3. X. XCấu hình chung MongoDB
Tất cả các trình điều khiển MongoDB chia sẻ cùng một cấu hình
Khi đặt cấu hình qua tệp thuộc tính, nó phải có tiền tố là mongock. mongo-db
Đặc tính
PropertyDescriptionTypeDefault valuewriteConcernChính xác là mối quan tâm ghi tham số MongoDB tương tự. Để biết thêm thông tin, hãy truy cập tài liệu MongoDB chính thức để viết mối quan tâm. Đối tượng{w.majority
,wTimeoutMs. vô,
j. true}readConcernChính xác là mối quan tâm đọc tham số MongoDB tương tự. Để biết thêm thông tin, hãy truy cập tài liệu MongoDB chính thức để đọc. String
majority
readPreferenceChính xác cùng một tùy chọn đọc tham số MongoDB. Để biết thêm thông tin, hãy truy cập tài liệu MongoDB chính thức để đọc ưu tiên. Chuỗiprimary
Bắt đầu
Tiếp theo, điều này bao gồm các bước 3 và 5 và 6
- Thêm phụ thuộc maven cho trình điều khiển [bước 2]
io.mongock
mongodb-sync-v4-driver
- Xây dựng trình điều khiển [bước 5]
Các lớp này cung cấp hai trình khởi tạo tĩnh giống nhau
- withDefaultLock[mongoClient, tên cơ sở dữ liệu]
- withLockStrategy[mongoClient, databaseName, lockAcquiredForMillis, lockQuitTryingAfterMillis, lockTryFrequencyMillis]
// For mongodb-sync-v4-driver
MongoSync4Driver driver = MongoSync4Driver.withDefaultLock[mongoClient, databaseName];
// For mongodb-v3-driver
//MongoCore3Driver driver = MongoCore3Driver.withDefaultLock[mongoClient, databaseName];
driver.setWriteConcern[WriteConcern.MAJORITY.withJournal[true].withWTimeout[1000, TimeUnit.MILLISECONDS]];
driver.setReadConcern[ReadConcern.MAJORITY];
driver.setReadPreference[ReadPreference.primary[]];
- Cấu hình bổ sung driver [bước 6]
giao dịchDo thiết kế API MongoDB, để làm việc với các giao dịch, cần có đối tượng ClientSession trong mọi hoạt động của trình điều khiển MongoDB.
Mongock làm điều này rất đơn giản. Nhà phát triển chỉ cần chỉ định một tham số _____ 6 trong hàm tạo hoặc phương thức của ________ 7 và sử dụng nó trong các hoạt động của MongoDB. Mongock lo mọi thứ khác.
Mã sau cho biết cách lưu tài liệu bên trong giao dịch bằng đối tượng ClientSession
.
@Execution
public void execution[ClientSession clientSession, MongoDatabase mongoDatabase] {
mongoDatabase.getCollection[CLIENTS_COLLECTION_NAME, Client.class]
.insertMany[clientSession, IntStream.range[0, INITIAL_CLIENTS]
.mapToObj[ClientInitializerChangeLog::getClient]
.collect[Collectors.toList[]]];
}
Ví dụ
Vui lòng truy cập kho lưu trữ github ví dụ của chúng tôi để biết thêm thông tin