Java的新專案學成線上筆記-day1(五)
5.1 定義模型
5.1.1 需求分析
在梳理完使用者需求後就要去定義前後端的介面,介面定義後前端和後端就可以依據介面去開發功能了。
本次定義頁面查詢介面,本介面供前端請求查詢頁面列表,支援分頁及自定義條件查詢方式。
具體需求如下:
1、分頁查詢CmsPage 集合下的資料 2、根據站點Id、模板Id、頁面別名查詢頁面資訊
3、介面基於Http Get請求,響應Json資料 5.1.2 模型類介紹
介面的定義離不開資料模型,根據前邊對需求的分析,整個頁面管理模組的資料模型如下:
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<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/setter、equals、構造方法等,它會在編譯時在位元組碼檔案自動生成這些通用的方法,簡化開發 人員的工作。
比如上節建立的UserTest模型,@Data註解可以自動生成getter/setter方法,@ToString生成tostring方法。
使用方法:
1、在專案中新增Lombok的依賴 作用:專案在編譯時根據Lombok註解生成通用方法。
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
2、在IDEA開發工具中新增Lombok外掛 作用:使用IDEA開發時根據Lombok註解生成通用方法,不報錯。