本帖最后由 谷粒姐姐 于 2018-12-19 16:29 编辑
5.1 定义模型
5.1.1 需求分析
在梳理完用户需求后就要去定义前后端的接口,接口定义后前端和后端就可以依据接口去开发功能了。
本次定义页面查询接口,本接口供前端请求查询页面列表,支持分页及自定义条件查询方式。
具体需求如下:
1、分页查询CmsPage 集合下的数据 2、根据站点Id、模板Id、页面别名查询页面信息
3、接口基于Http Get请求,响应Json数据 5.1.2 模型类介绍
接口的定义离不开数据模型,根据前边对需求的分析,整个页面管理模块的数据模型如下:
CmsSite:站点模型 CmsTemplate:页面模板 CmsPage:页面信息
页面信息如下:
[AppleScript] 纯文本查看 复制代码 [mw_shl_code=applescript,true] @Data @ToString @Document(collection = "cms_page") public class CmsPage {
/** * 页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态
*/
//站点ID
[AppleScript] 纯文本查看 复制代码 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;
} [/mw_shl_code]
属性说明:
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/setter、equals、构造方法等,它会在编译时在字节码文件自动生成这些通用的方法,简化开发 人员的工作。
项目官方地址:https://www.projectlombok.org/
比如上节创建的UserTest模型,@Data注解可以自动生成getter/setter方法,@ToString生成tostring方法。
使用方法:
1、在项目中添加Lombok的依赖 作用:项目在编译时根据Lombok注解生成通用方法。
[AppleScript] 纯文本查看 复制代码 [mw_shl_code=applescript,true]
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> </dependency>
[/mw_shl_code]
2、在IDEA开发工具中添加Lombok插件 作用:使用IDEA开发时根据Lombok注解生成通用方法,不报错。
|