// Path: springboot-webflux-4-thymeleaf/src/main/java/org/spring/springboot/dao/CityRepository.java
// @Repository
// public class CityRepository {
// 
//     private ConcurrentMap<Long, City> repository = new ConcurrentHashMap<>();
// 
//     private static final AtomicLong idGenerator = new AtomicLong(0);
// 
//     public Long save(City city) {
//         Long id = idGenerator.incrementAndGet();
//         city.setId(id);
//         repository.put(id, city);
//         return id;
//     }
// 
//     public Collection<City> findAll() {
//         return repository.values();
//     }
// 
// 
//     public City findCityById(Long id) {
//         return repository.get(id);
//     }
// 
//     public Long updateCity(City city) {
//         repository.put(city.getId(), city);
//         return city.getId();
//     }
// 
//     public Long deleteCity(Long id) {
//         repository.remove(id);
//         return 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;
//     }
// }


import org.spring.springboot.dao.CityRepository;
import org.spring.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;
package org.spring.springboot.handler;


@Component
public class CityHandler {

    private final CityRepository cityRepository;

    @Autowired
// Path: springboot-webflux-4-thymeleaf/src/main/java/org/spring/springboot/dao/CityRepository.java
// @Repository
// public class CityRepository {
// 
//     private ConcurrentMap<Long, City> repository = new ConcurrentHashMap<>();
// 
//     private static final AtomicLong idGenerator = new AtomicLong(0);
// 
//     public Long save(City city) {
//         Long id = idGenerator.incrementAndGet();
//         city.setId(id);
//         repository.put(id, city);
//         return id;
//     }
// 
//     public Collection<City> findAll() {
//         return repository.values();
//     }
// 
// 
//     public City findCityById(Long id) {
//         return repository.get(id);
//     }
// 
//     public Long updateCity(City city) {
//         repository.put(city.getId(), city);
//         return city.getId();
//     }
// 
//     public Long deleteCity(Long id) {
//         repository.remove(id);
//         return 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-9-test/src/main/java/org/spring/springboot/handler/CityHandler.java
import org.spring.springboot.dao.CityRepository;
import org.spring.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;

package org.spring.springboot.handler;


@Component
public class CityHandler {

    private final CityRepository cityRepository;

    @Autowired
    public CityHandler(CityRepository cityRepository) {