springBoot項目常用目錄有哪些
springboot項目常用目錄有哪些
本文講解"springboot項目常用目錄有哪些",希望能夠解決相關問題。
springboot項目常用目錄
springboot項目的目錄結(jié)構及名規(guī)范
介紹基于springboot開發(fā)時的目錄結(jié)構及命名規(guī)范,通過介紹能夠為你解決,在實際項目中如何規(guī)劃目錄結(jié)構?如何命名目錄更規(guī)范?各個目錄分別代表什么含義?等三個問題。
目錄說明
servicex // 項目名 |- admin-ui // 管理服務前端代碼(一般將ui和service放到一個工程中,便于管理) |- servicex-auth // 模塊1 |- servicex-common // 模塊2 |- servicex-gateway // 模塊3 |- servicex-system // 模塊4 |- src |- main // 業(yè)務邏輯 |- assembly // 基于maven assembly插件的服務化打包方案 |- bin // 模塊腳本(啟動、停止、重啟) |- sbin // 管理員角色使用的腳本(環(huán)境檢查、系統(tǒng)檢測等等) |- assembly.xml // 配置文件 |- java // 源碼 |- com |- hadoopx |- servicex |- system |- annotation // 注解 |- aspect // 面向切面編程 |- config // 配置文件pojo |- filter // 過濾器 |- constant // 存放常量 |- utils // 工具 |- exception // 異常 |- controller // 控制層(將請求通過url匹配,分配到不同的接收器/方法進行處理,然后返回結(jié)果) |- service // 服務層接口 |- impl // 服務層實現(xiàn) |- mapper/repository // 數(shù)據(jù)訪問層,與數(shù)據(jù)庫交互為service提供接口 |- entity/domain // 實體對象 |- dto // 持久層需要的實體對象(用于服務層與持久層之間的數(shù)據(jù)傳輸對象) |- vo // 視圖層需要的實體對象(用于服務層與視圖層之間的數(shù)據(jù)傳輸對象) |- *application.java // 入口啟動類 |- resources // 資源 |- static // 靜態(tài)資源(html、css、js、圖片等) |- templates // 視圖模板(jsp、thymeleaf等) |- mapper // 存放數(shù)據(jù)訪問層對應的xml配置 |- *mapper.xml |- ... |- application.yml // 公共配置 |- application-dev.yml // 開發(fā)環(huán)境配置 |- application-prod.yml // 生產(chǎn)環(huán)境配置 |- banner.txt |- logback.xml // 日志配置 |- test // 測試源碼 |- java |- com |- hadoopx |- servicex |- system |- 根據(jù)具體情況按源碼目錄結(jié)構存放編寫的測試用例 |- target // 編譯打包輸出目錄(自動生成,不需要創(chuàng)建) |- pom.xml // 該模塊的pom文件 |- sql // 項目需要的sql腳本 |- doc // 精簡版的開發(fā)、運維手冊 |- .gitignore // 哪些文件不用傳到版本管控工具中 |- pom.xml // 工程總pom文件 |- readme.md // 注意事項 external libraries // 相關jar包依賴
注意事項
(1). mapper/repository,數(shù)據(jù)訪問層,與數(shù)據(jù)庫交互為service提供接口(對某個表進行增刪改查,一個’*mapper.java’和一個’*mapper.xml’對應一張表(存在關聯(lián)查詢的情況);mybatis使用的是mapper,jpa使用的是repository)
(2). entity/domain,數(shù)據(jù)實體類(mybatis使用的是entity,jpa使用的是domain)
(3). pojo,vo,dto,do,po,bo的含義:
- pojo:是一個簡單的、普通的java對象,它包含業(yè)務邏輯處理或持久化邏輯等。但不是javabean、entitybean等,不具有任何特殊角色,不繼承或不實現(xiàn)任何其它java框架的類或接口。可以包含類似與javabean屬性和對屬性訪問的setter和getter方法的對象。
- vo(view object):視圖對象,用于展示層顯示,代表展示層需要顯示的數(shù)據(jù)。它的作用是把某個指定頁面/組件需要的所有數(shù)據(jù)封裝起來。
- dto(data transfer object):數(shù)據(jù)傳輸對象,用于服務層與持久層之間的數(shù)據(jù)傳輸對象,代表服務層需要接收/返回的數(shù)據(jù)。
- do(domain object): 領域?qū)ο螅褪菑默F(xiàn)實世界中抽象出來的有形或無形的實體對象。
- po(persistent object):持久化對象,它跟持久層(通常是關系型數(shù)據(jù)庫)的數(shù)據(jù)結(jié)構形成一一對應的映射關系,數(shù)據(jù)表中的每個字段(或若干個)就對應po的一個(或若干個)屬性。
- bo(business object): 業(yè)務對象,用于把業(yè)務邏輯封裝為一個對象,這個對象可以包括一個或多個其它的對象。
- pojo持久化之后 -> po;pojo傳輸過程中 -> dto;pojo用作表示層 -> vo