springboot Mongodb的集成与使用实例详解

  

  

Mongodb在Lind.DDD中被二次封装过(大叔的。net和。net核心),将它当成是一种仓储来使用,对于开发人员来说只公开豆腐几个标准的接口即可,而在springboot框架里,它与大叔林德有些类似之处,同样是被二次封装了,开发人员只需要关注自己的业务即可,而标准的豆腐操作完成由springboot帮助我们来实现,一般地,我们会设计一个与实体对象的接口仓储,让它去继承蒙戈的标准接口,然后在springboot的依赖注入框架里把标准的实现注入进的来,这一切都是框架帮助我们实现的!

  

  

如果项目需要使用mongodb去持久化数据,一般可以经过下面几个步骤来实现:

  

<强> 1添加包依赖build.gradle

        编译(org.springframework.boot: spring-boot-starter-data-mongodb)      

如果有单元测试项目,可以使用内嵌的mongodb,这样它不需要与外部资源进行通信、工作原理:从远程下载mongodb包,启动它,测试完成后删除生成的集合

        testCompile (de.flapdoodle.embed: de.flapdoodle.embed.mongo: 2.0.3)      

2添加默认的配置项application.yml

        春天:   数据:   mongodb:   uri: mongodb://192.168.99.100:27017/测试   密码:客人   用户名:客人      

3,添加mongodb集合对应的实体类

     /* *   *地址。   */@ data   @NoArgsConstructor   @AllArgsConstructor   公共类地址{/* *   *编的号。   */@ id   私人字符串id;/* *   *省。   */私人的字符串;/* *   *市。   */私人的字符串;/* *   *区。   */私人字符串区;/* *   *状态。   */私人身份地位;   }      

4添加实体所对应的仓库类,它需要继承扩展标准的mongodb仓储,同时mongodb仓储支持自动定约定的方法,开发人员可以通过@Query注释来确定返回的字段列表,这对于大数据文档是很必要的,如果默认的接口不能满足我们的要求,我们需要定义个性化的接口,并去实现它,下面的例子中,我们的AddressExtRepository就是一个个性化接口,我们对外的接口AddressRepository需要继承它,注意,大叔认为这样破获了面向对象的开闭原则,元芳,你怎么看!

     /* *   *对外提供的地址仓储接口,继承所有地址相关的接口。   */公共接口AddressRepository延伸   AddressExtRepository,   String> MongoRepository<解决;{/* *   *根据省,拿地址列表。   *   * @param省   * @return   */@Query(字段="{‘省’:0}")   List
findAddressesByProvince(字符串省);/* *   *根据省和省,拿地址列表。   *   * @param省   * @param城市   * @return   */@Query()//字段表示包含的字段   List
findAddressesByProvinceAndCityAndDistrict(字符串,字符串,字符串区);   }      

个性化仓储实现,使用MongoTemplate对象与mongodb数据库进行交互!

     /* *   *特殊规则的仓储实现。   */公共类AddressExtRepositoryImpl实现AddressExtRepository {   @ autowired   MongoTemplate MongoTemplate;   @Override   公共地址findByProvinceAndCity(字符串,字符串市){   查询查询=new查询(Criteria.where(“省”).(省),(“城市”).(市));   mongoTemplate返回。findOne(查询地址。类,“地址”);   }   }      

5控制器中直接通过@ autowired注解来访问仓储和业务对象即可

        @RestController   公开课MongoController {//仓储。   @ autowired   私人AddressRepository库;//用户业务。   @ autowired   私人UserService UserService;/* *   *得到地址列表。   *   * @return   */@RequestMapping(“/地址/{省}”)   公共地址getAddress (@PathVariable(“省”)字符串省){   system . out。println(" 1、?" +省);   返回userService.getAddress(省);   }   }      

  

以上所述是小编给大家介绍的springboot Mongodb的集成与使用实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

springboot Mongodb的集成与使用实例详解