Spring MongoDB en 5 minutes

Créer sa base MongoDB

Bien qu’il soit assez simple d’installer MongoDB sur un poste de développement, avec l’arrivée du cloud et des SaaS, il est très simple et très rapide d’avoir une instance de Mongo. MongoHQ offre des solutions d’hébergement de Mongo à la demande, à plusieurs tarifs. L’offre starter est gratuite, mais apporte une limite de 16 Mo.

En plus d’héberger l’instance, MongoHQ offre également une interface graphique très pratique pour parcourir votre base, vos collections et leurs données, ou encore gérer les indexes.

Utiliser Spring Data MongoDB

Ajout des dépendances

La première chose à faire est d’ajouter la dépendance vers le projet Spring Mongo. Avec un projet Maven, cela se fera très simplement comme ceci :

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

Configuration de Spring Data MongoDB

Il faut ensuite configurer votre application Spring afin d’y ajouter les beans nécessaires pour utiliser Spring Data MongoDB. Ce dernier fournit une classe de configuration qu’il suffit d’étendre pour configurer le stricte nécessaire :

@Configuration
public class MongoConfig extends AbstractMongoConfiguration {

    @Override
    public Mongo mongo() throws Exception {
        return new Mongo("staff.mongohq.com", 10073);
    }

    @Override
    public String getDatabaseName() {
        return "spring-data";
    }

    @Override
    public UserCredentials getUserCredentials() {
        return new UserCredentials("spring-data", "spring-data-passwd");
    }
}

Les deux premières méthodes sont obligatoires, la première représente la connexion vers le serveur MongoDB. Si vous utilisez mongohq, vous trouverez les informations nécessaires dans l’onglet “Database infos”

La deuxième est le nom de la base à utiliser, celui que vous avez fournit à la création dans mongohq

La troisième quand à elle ne soit être surchargée que lorsqu’on utilise des bases sécurisées et donc pour lesquelles il faut s’authentifier. Une fois de plus, mongohq offre la possibilité de gérer les utilisateurs et leur mot de passe via l’interface web.

Enregistrer et lire des documents

Une fois la configuration préparée, il est possible d’injecter un bean de type MongoTemplate. Celui ci propose une série de méthodes pour accéder à MongoDB.

Par exemple, prenons une classe Contact.

public class Contact {

    private String firstname;

    private String lastname;

    private String email;

    private String phoneNumber;

    // Getter, Setter & Constructors

}

Afin d’enregistrer une instance de cette classe, il suffit d’utiliser la méthode save(Object) du MongoTemplate :

MongoTemplate template = context.getBean(MongoTemplate.class);

Contact contact = new Contact("Gildas", "Cuisinier", "gildas.cuisinier[at]domain.com", "+42 424242");
template.save(contact);
comments powered by Disqus