实战SpringCloud响应式微服务系列教程(第十章)响应式RESTful服务完整代码示例
本文为实战SpringCloud响应式微服务系列教程第十章,本章给出响应式RESTful服务完整代码示例。建议没有之前基础的童鞋,先看之前的章节,章节目录放在文末。
server: port: 9801 spring: application: name: advert data: mongodb: uri: mongodb://localhost:27017/db_advert http: encoding: force: true charset: UTF-8 enabled: true redis: host: 127.0.0.1 password: 123456 logback: level: info
以上配置代码是我们目前学习的响应式RESTful服务的全部配置,配置比较简单,spring.data.mongodb.uri: mongodb://localhost:27017/db_advert
和spring.data.redis
是我们服务的核心配置,我们知道传统的数据库是不支持响应式数据读取的,所以这里使用mongodb和redis代替。
3.集成响应式的MongoDB
springboot 本身提供了cassandra/couchbase/mongodb/redis这几个NoSQL数据库的响应式驱动:
阻塞式的spring-boot-starter-data-mongodb 改为响应式的mongodb依赖spring-boot-starter-data-mongodb-reactive:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId></dependency>
(1)编写实体类:
/** * 广告投放 */ @Document(collection="advert")//集合名@Data @Builder @NoArgsConstructor @AllArgsConstructor public class Advert implements Serializable { private static final long serialVersionUID = -8985545025018238754L; /** * 主键 */ @Id private String id; /** * 内容 */ private String content; /** * 发布人 */ private Long userId; /** * 创建时间 */ private Date creatData; /** * 图片地址 */ private String imgUrl; /** * 视频地址 */ private String videoUrl; /** * 广告类型(视频图片) */ private String advertType; /** * 今日投放地区 */ private String launchArea; /** * 投放时长(小时为单位) */ private int durationTime; /** * 广告类型 */ private int classify; /** * 计费方式 */ private int billingMode; /** * 展示位置(首页轮播,其他轮播,首页其他位置,其他) */ private int displayPosition; /** * 广告主题 */ private String advertTitle; /** * 是否需要自定义展示页面 */ private int isCustom; /** * 索引关键词 */ private String keyWords; }