Parlez-nous de l'origine de Springboot et de l'oncle Lind.ddd
MongoDB est encapsulé secondaire dans Lind.ddd (.NET et .NET CORE) et l'utilise comme une sorte de référentiel. Pour les développeurs, ne guérissez que quelques interfaces standard. Dans le cadre de Springboot, il est quelque peu similaire à l'oncle de l'oncle, et il est également encapsulé secondaire. Les développeurs n'ont qu'à prêter attention à leur propre entreprise. L'opération de caillé standard est complétée par Springboot pour nous aider à mettre en œuvre. Généralement, nous concevons un référentiel d'interface avec des objets d'entité, afin qu'il puisse hériter de l'interface standard de Mongo, puis injecter l'implémentation standard dans le cadre d'injection de dépendance à Springboot. Tout cela est ce que le cadre nous aide à mettre en œuvre!
Mettre en œuvre MongoDB dans le projet
Si le projet doit utiliser MongoDB pour persister des données, elle peut généralement être réalisée par les étapes suivantes:
1 Ajouter la build de dépendance du package. Gradle
compiler ('org.springframework.boot: printemps-boot-starter-data-mongodb')S'il y a un projet de test unitaire, vous pouvez utiliser MongoDB embarqué afin qu'il n'ait pas besoin de communiquer avec des ressources externes. Comment cela fonctionne: Téléchargez le package MongoDB à distance, démarrez-le, supprimez la collection générée une fois le test terminé
TestCompile ('de.flapdoodle.embed: de.flapdoodle.embed.mongo: 2.0.3')2 Ajouter l'élément de configuration par défaut Application.yml
Spring: Données: MongoDB: URI: MongoDB: //192.168.99.100: 27017 / Test Mot de passe: Nom d'utilisateur invité: invité
3ADD La classe d'entité correspondant à la collection MongoDB
/** * Adresse. * / @ Data @ noargsconstructor @ allargSconstructorPublic Class Address {/ ** * numéro. * / @Id ID de chaîne privée; /** * Province. * / Province de chaîne privée; /** * Ville. * / Private String City; /** * District. * / district de cordes privées; /** * Statut. * / statut de statut privé;}4 Ajoutez la classe de référentiel correspondant à l'entité. Il doit hériter du référentiel MongoDB standard des extensions. Dans le même temps, le référentiel MongoDB prend en charge les méthodes de convention automatique. Les développeurs peuvent utiliser @Query Annotation pour déterminer la liste des champs retournés, ce qui est très nécessaire pour les documents de Big Data. Si l'interface par défaut ne peut pas répondre à nos exigences, nous devons définir une interface personnalisée et la mettre en œuvre. Dans l'exemple suivant, notre AddressExtrepository est une interface personnalisée. Notre interface externe AddressRepository doit l'hériter. Notez que l'oncle estime que cela a craqué le principe d'ouverture et de clôture orienté objet. Yuan Fang, qu'en pensez-vous!
/ ** * L'interface d'entreposage d'adresse fournie à l'extérieur, héritant de toutes les interfaces liées à l'adresse. * / Interface publique AddressRepository étend AddressExtrePository, Mongorepository <adresse, String> {/ ** * Obtenez la liste d'adresses basée sur la province. * * @param province * @return * / @Query (Fields = "{'Province': 0}") List <DDRESS> FindAddressByProvince (String Province); / ** * Obtenez la liste d'adresses basée sur la province et la province. * * @param province * @param ville * @return * / @Query () // champs indique le champ contenu dans la liste <adress> findAddressyprovinerAndCityAnddisect (province de String, City, String District);};Implémentation de l'entreposage personnalisé, en utilisant un objet Mongotemplate pour interagir avec la base de données MongoDB!
/ ** * Implémentation du référentiel de règles spéciales. * / classe publique AddressExtrePositoryIMP implémente AddressExtrePository {@Autowired Mongotemplate Mongotemplate; @Override Adresse publique FindByProvinerAndCity (province de String, String City) {Query Query = New Query (Critères.Where ("Province"). Is (Province) .and ("City"). Is (City)); return mongotemplate.findone (requête, adresse.classe, "adresse"); }}5. Dans le contrôleur, vous pouvez accéder directement au stockage et aux objets commerciaux via l'annotation @Autowired.
@RestControllerPublic Class Mongocontroller {// Repository. @Autowired private AddressRepository Repository; // entreprise utilisateur. @Autowired Private UserService UserService; / ** * Obtenez la liste d'adresses. * * @return * / @requestmapping ("/ adresse / {province}") Adresse publique GetAddress (@Pathvariable ("Province") Province de chaîne) {System.out.println ("1, province =" + province); return userservice.getAddress (province); }}Résumer
Ce qui précède est une explication détaillée des exemples d'intégration et d'utilisation de Springboot MongoDB présentés par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!