A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 我是楠楠 于 2019-12-5 11:22 编辑

【郑州校区】学成在线 第1天 讲义-项目概述 CMS接口开发 四

4.3 MongoDB入门
4.3.1 安装MongoDB
CMS采用MongoDB数据库存储CMS页面信息,CMS选用Mongodb的原因如下:
1Mongodb是非关系型数据库,存储Json格式数据 ,数据格式灵活。
2、相比课程管理等核心数据CMS数据不重要,且没有事务管理要求。
参考mongodb
安装.md
安装Mongodb ServerStudio 3T客户端软件。
4.3.2 MongoDB入门
参考mongodb安装及入门文档进行学习。
4.4 导入CMS数据库
导入cms数据库:
使用Studio 3T软件导入cms数据库
1、创建xc_cms数据库


2、导入 cms数据库
右键数据库,点击导入数据库


打开窗口,选择第json
步,选择要导入的数据文件(json文件)


步操作即可完成。
导入成功:


5 页面查询接口定义

5.1 定义模型
5.1.1 需求分析
在梳理完用户需求后就要去定义前后端的接口,接口定义后前端和后端就可以依据接口去开发功能了。
本次定义页面查询接口,本接口供前端请求查询页面列表,支持分页及自定义条件查询方式。
具体需求如下:
1、分页查询CmsPage 集合下的数据
2、根据站点Id、模板Id、页面别名查询页面信息
3、接口基于Http Get请求,响应Json数据
5.1.2 模型类介绍
接口的定义离不开数据模型,根据前边对需求的分析,整个页面管理模块的数据模型如下:


CmsSite:站点模型
CmsTemplate:页面模板
CmsPage:页面信息
页面信息如下:
[AppleScript] 纯文本查看 复制代码
 @Data
@ToString
@Document(collection =
"cms_page")
public class CmsPage {
/**
*页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态
*/
//站点ID
private String siteId;
//页面ID
@Id
private String pageId;
//页面名称
private String pageName;
//别名
private String pageAliase;
//访问地址
private String pageWebPath;
//参数
private String pageParameter;
//物理路径
private String pagePhysicalPath;
//类型(静态/动态)
private String pageType;
//页面模版
private String pageTemplate;
//页面静态化内容
private String pageHtml;
//状态
private String pageStatus;
//创建时间
private Date pageCreateTime;
//模版id
private String templateId;
//参数列表,暂不用
private List<CmsPageParam> pageParams;
//模版文件Id
// private String templateFileId;
//静态文件Id
private String htmlFileId;
//数据Url
private String dataUrl;
} 


属性说明:
1、定义
个页面需要指定页面所属站点
个站点包括多个页面,比如:学成在线的门户站点(网站)包括了多个页面。
2、定义
个页面需要指定页面使用的模板
多个页面可以使用相同的模板,比如:商品信息模板,每个商品就是
个页面,所有商品使用同
个商品信息模板
注解说明:
@Data@ToString@Document注解表示什么意思?
@Data@ToString:是Lombok提供的注解,下边会介绍。
@Document:是Spring Data mongodb提供的注解,最终CMS的开发会使用Mongodb数据库。

5.2.3 Lombok
上边的Data注解表示什么意思呢?Data注解,ToString注解都是Lombok提供的注解。
Lombok个实用的java工具,使用它可以消除java代码的臃肿,Lombok提供系列的注解,使用这些注解可以不用定义getter/setterequals、构造方法等,它会在编译时在字节码文件自动生成这些通用的方法,简化开发人员的工作。
项目官方地址:https://www.projectlombok.org/
比如上节创建的UserTest模型,@Data注解可以自动生成getter/setter方法,@ToString生成tostring方法。
使用方法:
1、在项目中添加Lombok的依赖
作用:项目在编译时根据Lombok注解生成通用方法。

[AppleScript] 纯文本查看 复制代码
<dependency>
<groupId>org.
projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

2、在IDEA开发工具中添加Lombok插件
作用:使用IDEA开发时根据Lombok注解生成通用方法,不报错。



5.2定义接口
5.2.1 定义请求及响应类型
1、定义请求模型QueryPageRequest,此模型作为查询条件类型为后期扩展需求,请求类型统继承RequestData类型

[AppleScript] 纯文本查看 复制代码
package com.xuecheng
.framework.domain.cms.request;
import com.xuecheng
.framework.model.request.RequestData;
import lombok.Data;
@Data
public class QueryPageRequest extends RequestData {
//站点id
private String siteId;
//页面ID
private String pageId;
//页面名称
private String pageName;
//别名
private String pageAliase;
//模版id
private String templateId;
}

2、响应结果类型,分页查询统使用QueryResponseResult
5.2.2 定义接口

Api接口工程专门定义接口,在Api工程单独定义接口的原因如下:
1、接口集中管理
2Api工程的接口将作为各微服务远程调用使用。页面查询接口定义如下:

[AppleScript] 纯文本查看 复制代码
public interface CmsPageControllerApi {
public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest) ;
}

此接口编写后会在CMS服务工程编写Controller类实现此接口。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马