1. 程式人生 > >Java的新專案學成線上筆記-day1(五)

Java的新專案學成線上筆記-day1(五)

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

br/>專案官方地址:https://www.projectlombok.org/
比如上節建立的UserTest模型,@Data註解可以自動生成getter/setter方法,@ToString生成tostring方法。
使用方法:
1、在專案中新增Lombok的依賴 作用:專案在編譯時根據Lombok註解生成通用方法。


<dependency>     <groupId>org.projectlombok</groupId>     <artifactId>lombok</artifactId> </dependency>

2、在IDEA開發工具中新增Lombok外掛 作用:使用IDEA開發時根據Lombok註解生成通用方法,不報錯。
Java的新專案學成線上筆記-day1(五)
Java的新專案學成線上筆記-day1(五)