MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Connexion à MongoDB 3.0 avec Java Spring

Après de nombreuses tentatives et lectures, j'ai trouvé un moyen de faire fonctionner MongoDB 3.0 avec l'authentification.

Il s'agissait d'une nouvelle installation de MongoDB 3.0, aucune mise à niveau n'était impliquée.

J'ai utilisé ces dépendances Maven :

<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>

avoir pour parent

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

Ensuite, dans mon fichier de configuration, j'avais

/**
 * 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());
}

Et enfin, où que vous ayez accès au bean MongoTemplate, vous pourrez le faire

mongoTemplate.insert(objectToStore, collectionName);