springboot系类代码:spring-boot-starter-data-mongodb-reactive

2022年11月19日10:27:53

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

package org.programb.springboot;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[] args){
      
        SpringApplication.run(Application.class,args);}}
package org.programb.springboot.dao;import org.programb.springboot.domain.City;import org.springframework.data.mongodb.repository.ReactiveMongoRepository;import org.springframework.stereotype.Repository;@RepositorypublicinterfaceCityRepositoryextendsReactiveMongoRepository<City, Long>{}
package org.programb.springboot.domain;import org.springframework.data.annotation.Id;publicclassCity{@Idprivate Long id;private Long provinceId;private String cityName;private String description;public LonggetId(){return id;}publicvoidsetId(Long id){this.id= id;}public LonggetProvinceId(){return provinceId;}publicvoidsetProvinceId(Long provinceId){this.provinceId= provinceId;}public StringgetCityName(){return cityName;}publicvoidsetCityName(String cityName){this.cityName= cityName;}public StringgetDescription(){return description;}publicvoidsetDescription(String description){this.description= description;}}
package org.programb.springboot.handler;import org.programb.springboot.dao.CityRepository;import org.programb.springboot.domain.City;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import reactor.core.publisher.Flux;import reactor.core.publisher.Mono;@ComponentpublicclassCityHandler{privatefinal CityRepository cityRepository;@AutowiredpublicCityHandler(CityRepository cityRepository){this.cityRepository= cityRepository;}public Mono<City>save(City city){return cityRepository.save(city);}public Mono<City>findCityById(Long id){return cityRepository.findById(id);}public Flux<City>findAllCity(){return cityRepository.findAll();}public Mono<City>modifyCity(City city){return cityRepository.save(city);}public Mono<Long>deleteCity(Long id){return cityRepository.deleteById(id).flatMap(mono-> Mono.create(cityMonoSink-> cityMonoSink.success(id)));}}
package org.programb.springboot.webflux.controller;import org.programb.springboot.domain.City;import org.programb.springboot.handler.CityHandler;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import reactor.core.publisher.Flux;import reactor.core.publisher.Mono;@RestController@RequestMapping(value="/city")publicclassCityWebFluxController{@Autowiredprivate CityHandler cityHandler;@GetMapping(value="/{id}")public Mono<City>findCityById(@PathVariable("id") Long id){return cityHandler.findCityById(id);}@GetMapping()public Flux<City>findAllCity(){return cityHandler.findAllCity();}@PostMapping()public Mono<City>saveCity(@RequestBody City city){return cityHandler.save(city);}@PutMapping()public Mono<City>modifyCity(@RequestBody City city){return cityHandler.modifyCity(city);}@DeleteMapping(value="/{id}")public Mono<Long>deleteCity(@PathVariable("id") Long id){return cityHandler.deleteCity(id);}}
spring.data.mongodb.host=localhost
spring.data.mongodb.database=admin
spring.data.mongodb.port=27017
spring.data.mongodb.username=admin
spring.data.mongodb.password=admin
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>springboot</groupId><artifactId>springboot-webflux-3-mongodb</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot-programb-mongodb</name><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb-reactive</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies></project>
  • 作者:咔啡
  • 原文链接:https://programb.blog.csdn.net/article/details/106259305
    更新时间:2022年11月19日10:27:53 ,共 4408 字。