Red de conocimiento informático - Material del sitio web - Cómo iniciar la interfaz WEB de MongoDB

Cómo iniciar la interfaz WEB de MongoDB

Creemos un servicio web EmployeeManager simple que usaremos para demostrar una conexión HATEOAS a MongoDB. Para iniciar nuestra aplicación, usaremos Spring Initializr. Usaremos Spring HATEOAS y Spring Data MongoDB como dependencias. Debería ver algo similar a la Figura 2 a continuación. Figura 2: Después de completar la configuración de la aplicación de arranque, descargue el paquete zip e impórtelo como un proyecto Maven a su entorno de desarrollo integrado favorito. Primero, configure application.properties y obtenga la conexión MongoDB, spring.data.mongodb.host=?//Mongo?server?host

spring.data.mongodb.port=?//Mongo?server? puerto

spring.data.mongodb.username=?//Login?user

spring.data.mongodb.password=?//Contraseña

spring. data .mongodb.database=?//Database?name

Normalmente, si todo es una instalación nueva y no ha cambiado ni modificado ninguna propiedad de Mongo, entonces solo necesita proporcionar un nombre de base de datos (Uno ha sido creado a través de la GUI).

spring.data.mongodb.database?=?EmployeeManager

Además, para iniciar la instancia de Mongo, el autor creó un archivo .bat que apunta a la carpeta de instalación y al carpeta de datos. Se parece a esto "C:\Program?Files\MongoDB\Server\3.6\bin\mongod"?--dbpath?D:\Inther\EmployeeManager\warehouse-data\db?

Ahora, vamos crear el modelo rápidamente. Aquí hay dos modelos: modelo de empleado y modelo de departamento. Verifíquelos para asegurarse de que no haya parámetros, captadores, definidores, métodos equivalentes ni constructores que generen códigos hash.

(No te preocupes, todo el código está en GitHub, puedes consultarlo más tarde:

public?class?Employee?{

private?String?employeeId;

¿privado?Cadena?primero Nombre;

privado?Cadena?apellido;

privado?int?edad;

}

público?clase?Departamento?{

privado?Cadena?departamento;

privado?Cadena?nombre;

privado?Cadena?descripción;

private?Listlt;Employeegt;?employees;

}

Ahora que hemos terminado de modelar, creemos el repositorio para probar la persistencia. El repositorio se ve así:

¿interfaz?pública?EmployeeRepository

extends?MongoRepositorylt;Employee,?Stringgt;?{

}

¿interfaz?pública?DepartmentRepository

extends?MongoRepositorylt;Department,?Stringgt; {

}

Como se muestra arriba, no hay ningún método aquí, porque todos sabemos que la interfaz central de Spring Data se llama Repository, y además está CrudRepository, que proporciona operaciones básicas para procesar modelos. Además de CrudRepository, también tenemos PagingAndSortingRepository, que nos proporciona algunas extensiones para simplificar el acceso a paginación y clasificación. el MongoRepository que se utiliza para manejar estrictamente nuestras instancias de Mongo. Por lo tanto, en nuestro caso no necesitamos ningún otro método excepto los que están listos para usar, pero para facilitar el aprendizaje, el autor quisiera mencionarlos aquí. agregue métodos de consulta adicionales: "Lazy" (creación de consultas): esta estrategia intentará generar la consulta analizando el nombre del método de consulta e infiriendo palabras clave (por ejemplo, findByLastnameAndFirstname) para generar la consulta: no hay nada especial aquí. Por ejemplo, simplemente anota el método con @Query y escribe la consulta tú mismo. También puedes escribir consultas en MongoDB. El siguiente es un ejemplo de un método de consulta basado en JSON:

@Query("{?'firstname'?:?0?}")

Listlt;Employeegt;?findByTheEmployeesFirstname (¿Cadena? nombre); En este punto, hemos podido probar cómo funciona la persistencia. Sólo necesitamos hacer algunos ajustes al modelo. Spring Data MongoDB usa MappingMongoConverter para asignar objetos a documentos. Aquí hay algunas anotaciones que usaremos: @Id: anotación a nivel de campo que indica qué campo es el identificador. @Document: anotación a nivel de clase, que indica que la clase persistirá en la base de datos. @DBRef: anotación a nivel de campo, utilizada para describir relaciones de referencia.

Una vez completada la anotación, podemos usar CommandLineRunner para obtener algunos datos de la base de datos. CommandLineRunner es una interfaz para ejecutar fragmentos de código cuando la aplicación está completamente iniciada (es decir, antes del método run()). A continuación se muestra la configuración del bean del autor.

@Bean?public?CommandLineRunner?init(EmployeeRepository?employeeRepository,?DepartmentRepository?departmentRepository)?{

return?-gt;?{

employeeRepository. deleteAll();

departmentRepository.deleteAll();

Empleado?e?=?employeeRepository.save(new?Empleado("Ion", ?"" Pascari",?23 ));

departmentRepository.save(new? Departamento("¿Servicio?Departamento", ?"" ¿Servicio?Rocks!Service?Rocks!", Arrays.asList(e));

for(Departamento?d?:?departmentRepository.findAll())?{

LOGGER.info("Departamento:?" ? ?d);

}

};

}? Creamos algunos modelos y los conservamos. Ahora necesitamos una forma de interactuar con ellos. Como se mencionó anteriormente, todo el código está disponible en GitHub. aquí nos muestra un servicio de dominio (interfaz e implementación). La interfaz es la siguiente:

public?interface?EmployeeService?{

Employee?saveEmployee(Employee?e); p>

¿Empleado?findByEmployeeId(String?employeeId);