From 7110337c6c869a40d377548fd03afd779561e33d Mon Sep 17 00:00:00 2001 From: mistadave Date: Wed, 19 Feb 2020 11:34:14 +0100 Subject: [PATCH 1/5] update spring and java :smile: --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2f79f75..4b33850 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 1.5.10.RELEASE + 2.2.1.RELEASE @@ -22,7 +22,7 @@ UTF-8 UTF-8 - 1.8 + 11 From e2cd593cc1596e55fce3fd645ceccf3e3a23d8a2 Mon Sep 17 00:00:00 2001 From: mistadave Date: Wed, 19 Feb 2020 11:34:24 +0100 Subject: [PATCH 2/5] updated gitignore --- .gitignore | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3bcc6cf..9e5fa4d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,9 @@ .DS_Store .idea /target -*.iml \ No newline at end of file +*.iml +.vscode +.settings +.classpath +.factorypath +.project \ No newline at end of file From e347b924ccdd8d31bbaa10493711e5c4bb6f64f7 Mon Sep 17 00:00:00 2001 From: mistadave Date: Wed, 19 Feb 2020 11:35:09 +0100 Subject: [PATCH 3/5] update mongoFactory to new spring version --- .../config/MultipleMongoConfig.java | 29 +++++++++++++++---- src/main/resources/application.yml | 6 +++- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/marcosbarbero/wd/multiplemongo/config/MultipleMongoConfig.java b/src/main/java/com/marcosbarbero/wd/multiplemongo/config/MultipleMongoConfig.java index 3a38629..f5b5fc0 100644 --- a/src/main/java/com/marcosbarbero/wd/multiplemongo/config/MultipleMongoConfig.java +++ b/src/main/java/com/marcosbarbero/wd/multiplemongo/config/MultipleMongoConfig.java @@ -1,6 +1,6 @@ package com.marcosbarbero.wd.multiplemongo.config; -import com.mongodb.MongoClient; +import com.mongodb.ConnectionString; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.mongo.MongoProperties; @@ -10,13 +10,15 @@ import org.springframework.context.annotation.Primary; import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.SimpleMongoDbFactory; +import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; /** * @author Marcos Barbero */ +@Slf4j @Configuration @RequiredArgsConstructor @EnableConfigurationProperties(MultipleMongoProperties.class) @@ -38,14 +40,29 @@ public MongoTemplate secondaryMongoTemplate() throws Exception { @Bean @Primary public MongoDbFactory primaryFactory(final MongoProperties mongo) throws Exception { - return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()), - mongo.getDatabase()); + ConnectionString conn = new ConnectionString(buildConnectionString(mongo)); + return new SimpleMongoClientDbFactory(conn); } @Bean public MongoDbFactory secondaryFactory(final MongoProperties mongo) throws Exception { - return new SimpleMongoDbFactory(new MongoClient(mongo.getHost(), mongo.getPort()), - mongo.getDatabase()); + ConnectionString conn = new ConnectionString(buildConnectionString(mongo)); + return new SimpleMongoClientDbFactory(conn); + } + + /** + * Builds connectionString with credentials + * + * @param mongo + * @return String with the connection information + */ + private String buildConnectionString(MongoProperties mongo) { + String prefex = "mongodb://"; + String con = new StringBuffer(prefex).append(mongo.getUsername()).append(":").append(mongo.getPassword()) + .append("@").append(mongo.getHost()).append(":").append(mongo.getPort()).append("/") + .append(mongo.getDatabase()).toString(); + log.debug("connection String: " + con); + return con; } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0286df7..0e7e76a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,11 +2,15 @@ mongodb: primary: host: localhost port: 27017 - database: second + database: first + username: apifirst + password: pa55w0rd secondary: host: localhost port: 27017 database: second + username: apisecond + password: pa55w0rd spring: autoconfigure: From df684880c6cc4a9e09a8424fe15cf93277da52bd Mon Sep 17 00:00:00 2001 From: mistadave Date: Wed, 19 Feb 2020 11:35:19 +0100 Subject: [PATCH 4/5] enable mongodbauditing --- .../java/com/marcosbarbero/wd/multiplemongo/Application.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/marcosbarbero/wd/multiplemongo/Application.java b/src/main/java/com/marcosbarbero/wd/multiplemongo/Application.java index cdeb74e..eadb1ac 100644 --- a/src/main/java/com/marcosbarbero/wd/multiplemongo/Application.java +++ b/src/main/java/com/marcosbarbero/wd/multiplemongo/Application.java @@ -9,6 +9,7 @@ import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.data.mongodb.config.EnableMongoAuditing; import java.util.List; @@ -16,6 +17,7 @@ @Slf4j @SpringBootApplication +@EnableMongoAuditing public class Application implements CommandLineRunner { @Autowired From 3f4547f66ab038a25f9ea660a0a33f87db5a43e0 Mon Sep 17 00:00:00 2001 From: mistadave Date: Wed, 19 Feb 2020 11:38:43 +0100 Subject: [PATCH 5/5] readme update --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fd81497..98f7650 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ -Multiple Mongo Connectors ---- +# Multiple Mongo Connectors + Sample application to connect to multiple `MongoDB` from spring-boot. http://blog.marcosbarbero.com/multiple-mongodb-connectors-in-spring-boot/ + +## Addition + +* Updated whole project from Spring-Boot 1.5.x to 2.2.x. +* Therefore the whole MongoDB factory class has changed. +* Added Credentials for MongoDB