springboot-webflux学习(转)(完)

05-Thymeleaf 和 MongoDB 实践

2018-10-16  本文已影响2人  郭艺宾

本文内容主要还是总结上面两篇内容的操作,并实现一个复杂查询的小案例,MongoDB数据库还使用前面安装好的。

首先生成项目:

可以看到上面有三个依赖的组件。

然后看一下项目结构:

核心目录如下:

1    pom.xml Maven 依赖配置

2    application.properties 配置文件,配置 mongo 连接属性配置

3    dao 数据访问层

4    controller 展示层实现

类似配了 MySQL 和 JDBC 驱动,肯定得去配置数据库。在 application.properties 配置中启动 MongoDB 配置。

数据库名为 admin,账号密码也为 admin。

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

MongoDB 数据访问层 CityRepository

City类:

修改 CityRepository 类,代码如下:

CityRepository 接口只要继承 ReactiveMongoRepository 类即可。

这里实现了通过城市名找出唯一的城市对象方法:

Mono<City>  findByCityName(String cityName);

复杂查询语句实现也很简单,只要依照接口实现规范,即可实现对应 MySQL 的 where 查询语句。这里 findByxxx 的 xxx 可以映射任何字段,包括主键等。

接口的命名是遵循规范的,常用命名规则如下:

处理器类 Handler 和控制器类 Controller

修改下 Handler,代码如下:

新增对应的方法,直接返回 Mono 对象,不需要对 Mono 进行转换,因为 Mono 本身是个对象,可以被 View 层渲染。继续修改控制器类 Controller,代码如下:

新增 getByName 路径,指向了新的页面 city。使用 @RequestParam 接收 GET 请求入参,接收的参数为 cityName,城市名称。视图返回值 Mono<String> 或者 String 都行。

Tymeleaf 视图

然后编写两个视图 city 和 cityList,代码分别如下。

city.html:

cityList.html:

运行工程

一个  Spring Boot WebFlux 工程就开发完毕了,下面运行工程验证下。在 IDEA 中执行 Application 类启动,任意正常模式或者 Debug 模式,可以在控制台看到成功运行的输出:

打开 Postman 工具,开发必备,进行下面操作。

新增城市信息 POST http://127.0.0.1:8005/city:

打开浏览器,访问 http://localhost:8005/city/getByName?cityName=大连,可以看到如图的响应:

继续访问 http://localhost:8005/city/page/list,如图:

注意:如果没有值可以插入几条。

其它接口可以自行实验。

总结

这里初步实现了一个简单的整合,具体复杂的案例我们在后面的综合案例中实现,会很酷炫。下面整合 Redis,基于 Redis 可以实现常用的缓存、锁,下一篇我们将学习如何整合 Reids。

原文:https://gitbook.cn/gitchat/column/5acda6f6d7966c5ae1086f2b/topic/5acdaa31d7966c5ae1087074

代码:https://gitee.com/blueses/springboot-webflux

上一篇下一篇

猜你喜欢

热点阅读