MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verbindung mit MongoDB 3.0 mit Java Spring

Nach vielen Versuchen und Lesen habe ich einen Weg gefunden, MongoDB 3.0 mit Authentifizierung zum Laufen zu bringen.

Dies war eine Neuinstallation von MongoDB 3.0, kein Upgrade erforderlich.

Ich habe diese Maven-Abhängigkeiten verwendet:

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>1.6.2.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.0.0</version>
</dependency>

Eltern haben

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.2.RELEASE</version>
</parent>

Dann hatte ich in meiner Konfigurationsdatei

/**
 * DB connection Factory
 * 
 * @return a ready to use MongoDbFactory
 */
@Bean
public MongoDbFactory mongoDbFactory() throws Exception {

    // Set credentials      
    MongoCredential credential = MongoCredential.createCredential(mongoUser, databaseName, mongoPass.toCharArray());
    ServerAddress serverAddress = new ServerAddress(mongoHost, mongoPort);

    // Mongo Client
    MongoClient mongoClient = new MongoClient(serverAddress,Arrays.asList(credential)); 

    // Mongo DB Factory
    SimpleMongoDbFactory simpleMongoDbFactory = new SimpleMongoDbFactory(
            mongoClient, databaseName);

    return simpleMongoDbFactory;
}

/**
 * Template ready to use to operate on the database
 * 
 * @return Mongo Template ready to use
 */
@Bean
public MongoTemplate mongoTemplate() throws Exception {
    return new MongoTemplate(mongoDbFactory());
}

Und schließlich, wo immer Sie Zugriff auf die MongoTemplate-Bean haben, können Sie dies tun

mongoTemplate.insert(objectToStore, collectionName);