Cuéntanos sobre el origen de Springboot y tío Lind.ddd
MongoDB está encapsulado secundario en Lind.DDD (Core .NET y .NET del tío) y lo usa como una especie de repositorio. Para los desarrolladores, solo cure algunas interfaces estándar. En el marco SpringBoot, es algo similar al Lind del tío, y también está encapsulado secundario. Los desarrolladores solo necesitan prestar atención a su propio negocio. SpringBoot completa la operación de cuajada estándar para ayudarnos a implementar. En general, diseñaremos un repositorio de interfaz con objetos de entidad, para que pueda heredar la interfaz estándar de Mongo, y luego inyectar la implementación estándar en el marco de inyección de dependencia de Springboot. ¡Todo esto es lo que el marco nos ayuda a implementar!
Implementar MongoDB en el proyecto
Si el proyecto necesita usar MongoDB para persistir en datos, generalmente se puede lograr a través de los siguientes pasos:
1 Agregar compilación de dependencia del paquete.
compile ('org.springframework.boot: spring-boot-starter-data-mongodb')Si hay un proyecto de prueba unitaria, puede usar MongoDB integrado para que no sea necesario comunicarse con recursos externos. Cómo funciona: descargue el paquete MongoDB de remotamente, comience, elimine la colección generada después de completar la prueba
testCompile ('de.flapdoodle.embed: de.flapdoodle.embed.mongo: 2.0.3')2 Agregue la aplicación de elemento de configuración predeterminada.YML
Primavera: Datos: MongoDB: Uri: MongoDB: //192.168.99.100: 27017/PRUEBA CONTRASEÑA: Nombre de usuario de invitado: Invitado
3ad la clase de entidad correspondiente a la colección MongoDB
/** * DIRECCIÓN. * /@Data@noargsconstructor@allArgSconstructorPublic de dirección { /*** número. */ @Id ID de cadena privada; /** * Provincia. */ Provincia de cadena privada; /** * Ciudad. */ Private String City; /** * Distrito. */ Distrito de cadenas privadas; /** * Estado. */ estado de estado privado;}4 Agregue la clase de repositorio correspondiente a la entidad. Necesita heredar el repositorio de MongoDB estándar extendido. Al mismo tiempo, el repositorio de MongoDB admite métodos automáticos de convenciones. Los desarrolladores pueden usar la anotación de @Query para determinar la lista de campo devuelta, que es muy necesaria para los documentos de Big Data. Si la interfaz predeterminada no puede cumplir con nuestros requisitos, necesitamos definir una interfaz personalizada e implementarla. En el siguiente ejemplo, nuestro directionExtRepository es una interfaz personalizada. Nuestro depósito de direcciones de interfaz externa debe heredarlo. Tenga en cuenta que el tío cree que esto ha descifrado el principio de apertura y cierre orientado a objetos. Yuan Fang, ¿qué piensas!
/*** La interfaz de almacenamiento de direcciones proporcionada al exterior, heredando todas las interfaces relacionadas con la dirección. * /Public Interface DirectionRepository extiende DirectSEXTRepository, MongoRepository <dirección, cadena> { /*** Obtenga la lista de direcciones basada en la provincia. * * @param provincia * @return */ @Query (Fields = "{'provincia': 0}") Lista <Dirección> FindAddressSyProvince (provincia de cadenas); /*** Obtenga la lista de direcciones basada en la provincia y la provincia. * * @param provincia * @param city * @return */@Query () // Los campos indican el campo contenido en la lista <Diring> findDressesbyProvinceandCityAndDistict (provincia de cadenas, Ciudad de cadenas, distrito de cadena);}¡Implementación de almacenamiento personalizado, utilizando objeto MongoTemplate para interactuar con la base de datos MongoDB!
/*** Implementación del repositorio de reglas especiales. */public class DirectionExtRepositoryImpl implements DirectEextRepository {@aUtowired MongoTemplate MongoTemplate; @Override Discurso público FindByProvinceAndCity (provincia de cadenas, City String) {Query Query = New Query (criterio.where ("Province"). IS (Provincia) .y ("Ciudad"). IS (Ciudad)); return MongoTemplate.findone (consulta, dirección.class, "dirección"); }}5. En el controlador, puede acceder a los objetos de almacenamiento y negocios directamente a través de la anotación @Autowired.
@RestControllerPublic Clase MongoController {// repository. @AUTOWIREDIREDED Private DirectionRepository Repository; // negocio de usuarios. @AutoWired private UserSerervice UserService; /*** Obtenga la lista de direcciones. * * @return */@RequestMapping ("/dirección/{provincia}") Dirección pública getAddress (@PathVariable ("Provincia") Provincia de cadenas) {System.out.println ("1, provincia =" + provincia); return UserService.getAddress (provincia); }}Resumir
Lo anterior es una explicación detallada de los ejemplos de integración y uso de Springboot MongoDB introducido por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!