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


@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 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/setter、equals、构造方法等,它会在编译时在字节码文件自动生成这些通用的方法,简化开发 人员的工作。br/>项目官方地址:https://www.projectlombok.org/
比如上节创建的UserTest模型,@Data注解可以自动生成getter/setter方法,@ToString生成tostring方法。
使用方法:
1、在项目中添加Lombok的依赖 作用:项目在编译时根据Lombok注解生成通用方法。


     org.projectlombok     lombok 

2、在IDEA开发工具中添加Lombok插件 作用:使用IDEA开发时根据Lombok注解生成通用方法,不报错。
Java的新项目学成在线笔记-day1(五)_第2张图片
Java的新项目学成在线笔记-day1(五)_第3张图片