MongoClientProvider

La clase MongoClientProvider se utiliza para definir los datos de conexión a la base de datos MongoDB que se utilizara.

Existen dos definiciones de clases dependiendo del contexto donde se utilicen.

  • Para aplicaciones Java Standar Edition

  • Para aplicaciones Java Enterprise Edition

Nota: Por razones de seguridad es recomendable habilitar la seguridad de mongodb indicar el usuario y password.

Aplicaciones Java Standar Edition

Si desarrollamos una aplicación de escrito definimos la clase

import com.mongodb.MongoClient;
/**
*
* @author avbravo
*/

public class MongoClientProvider {

private MongoClient mongoClient = null;

public MongoClient getMongoClient() {

    mongoClient = new MongoClient();

    try {

        /**

         * autentificacion si deseamos establecer la conexión le quitamos los comentarios

         */

          /*
         String database = "";
        String username = "";
        String password = "";
        String host = "localhost";
        int port = 27017;
        char[] charArray = password.toCharArray();
        MongoCredential credential = MongoCredential.createCredential(username, database, charArray);
        mongoClient = new MongoClient(new ServerAddress(host, port), Arrays.asList(credential));
         */


    } catch (Exception e) {

       System.out.println("getMongoClient() "+e.getLocalizedMessage());

    }
    return mongoClient;

  }
}

Aplicaciones Java Enterprise Edition

Para aplicaciones empresariales Java que utilizan el estándar Java Enterprise Edition, generalmente usadas en aplicaciones web, definimos la clase. Esto permite que la comunicación con la base de datos no sea necesario definir JNDI.

import javax.annotation.PostConstruct;

import javax.ejb.ConcurrencyManagement;

import javax.ejb.ConcurrencyManagementType;

import javax.ejb.Lock;

import javax.ejb.LockType;

import javax.ejb.Singleton;

import com.mongodb.MongoClient;

@Singleton

@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)

public class MongoClientProvider {

private MongoClient mongoClient = null;

@Lock(LockType.READ)
public MongoClient getMongoClient(){    
    return mongoClient;
}

@PostConstruct
public void init() {
        try {
        /*
          String database="";
          String username="";
          String password="";
          String host="localhost";
          String port="27017";
          char[] charArray = password.toCharArray();
          MongoCredential credential = MongoCredential.createCredential(username, database, charArray);
           mongoClient = new MongoClient(new ServerAddress(host,port), Arrays.asList(credential));
           */
          mongoClient = new MongoClient();
        } catch (Exception e) {
            JsfUtil.addErrorMessage("init() "+e.getLocalizedMessage());
        }

}       
}

Last updated