// Path: springboot-webflux-5-thymeleaf-mongodb/src/main/java/org/spring/springboot/domain/City.java
// public class City {
// 
//     /**
//      * 城市编号
//      */
//     private Long id;
// 
//     /**
//      * 省份编号
//      */
//     private Long provinceId;
// 
//     /**
//      * 城市名称
//      */
//     private String cityName;
// 
//     /**
//      * 描述
//      */
//     private String description;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public Long getProvinceId() {
//         return provinceId;
//     }
// 
//     public void setProvinceId(Long provinceId) {
//         this.provinceId = provinceId;
//     }
// 
//     public String getCityName() {
//         return cityName;
//     }
// 
//     public void setCityName(String cityName) {
//         this.cityName = cityName;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// }


import org.spring.springboot.domain.City;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ReactiveRedisTemplate;
import org.springframework.data.redis.core.ReactiveValueOperations;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Mono;
package org.spring.springboot.webflux.controller;


@RestController
@RequestMapping(value = "/city2")
public class CityWebFluxReactiveController {

    @Autowired
    private ReactiveRedisTemplate reactiveRedisTemplate;

    @GetMapping(value = "/{id}")
    public Mono<City> findCityById(@PathVariable("id") Long id) {
        String key = "city_" + id;
// Path: springboot-webflux-5-thymeleaf-mongodb/src/main/java/org/spring/springboot/domain/City.java
// public class City {
// 
//     /**
//      * 城市编号
//      */
//     private Long id;
// 
//     /**
//      * 省份编号
//      */
//     private Long provinceId;
// 
//     /**
//      * 城市名称
//      */
//     private String cityName;
// 
//     /**
//      * 描述
//      */
//     private String description;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public Long getProvinceId() {
//         return provinceId;
//     }
// 
//     public void setProvinceId(Long provinceId) {
//         this.provinceId = provinceId;
//     }
// 
//     public String getCityName() {
//         return cityName;
//     }
// 
//     public void setCityName(String cityName) {
//         this.cityName = cityName;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// }


// Path: springboot-webflux-6-redis/src/main/java/org/spring/springboot/webflux/controller/CityWebFluxReactiveController.java
import org.spring.springboot.domain.City;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ReactiveRedisTemplate;
import org.springframework.data.redis.core.ReactiveValueOperations;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Mono;

package org.spring.springboot.webflux.controller;


@RestController
@RequestMapping(value = "/city2")
public class CityWebFluxReactiveController {

    @Autowired
    private ReactiveRedisTemplate reactiveRedisTemplate;

    @GetMapping(value = "/{id}")
    public Mono<City> findCityById(@PathVariable("id") Long id) {
        String key = "city_" + id;
        ReactiveValueOperations<String, City> operations = reactiveRedisTemplate.opsForValue();