diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java index f18cf8df1a8f..2d9c20dc4975 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java @@ -159,6 +159,7 @@ private Builder createBuilder(MongoClientSettings settings, if (connection.getApplicationName() != null) { builder.applicationName(connection.getApplicationName()); } + builder.retryWrites(connection.getRetryWrites()); return builder; } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java index edcf05945d6c..3ea095b7470a 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java @@ -112,6 +112,14 @@ public void uriCanBeCustomized() { assertMongoCredential(credential, "user", "secret", "test"); } + @Test + public void retryWritesIsPropagatedFromUri() { + MongoProperties properties = new MongoProperties(); + properties.setUri("mongodb://localhost/test?retryWrites=true"); + MongoClient client = createMongoClient(properties); + assertThat(client.getSettings().getRetryWrites()).isTrue(); + } + @Test public void uriCannotBeSetWithCredentials() { MongoProperties properties = new MongoProperties();