springBoot項(xiàng)目常用目錄解讀
springBoot項(xiàng)目常用目錄

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

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java getResource()如何獲取class文件目錄位置
這篇文章主要介紹了Java getResource()如何獲取class文件目錄位置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
MyBatis批量插入幾千條數(shù)據(jù)為何慎用foreach
這篇文章主要介紹了MyBatis批量插入幾千條數(shù)據(jù)為何慎用foreach問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
java.net.ConnectException異常的正確解決方法(親測(cè)有效!)
java.net.ConnectException異常是與網(wǎng)絡(luò)相關(guān)的最常見(jiàn)的Java異常之一,建立從客戶端應(yīng)用程序到服務(wù)器的TCP連接時(shí),我們可能會(huì)遇到它,這篇文章主要給大家介紹了關(guān)于java.net.ConnectException異常的正確解決方法,需要的朋友可以參考下2024-01-01
SpringBoot如何統(tǒng)一清理數(shù)據(jù)
這篇文章主要介紹了SpringBoot如何統(tǒng)一清理數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Java中g(shù)etResourceAsStream用法分析
這篇文章主要介紹了Java中g(shù)etResourceAsStream用法,較為詳細(xì)的分析了getResourceAsStream的功能及用法,需要的朋友可以參考下2015-06-06
javaWEB實(shí)現(xiàn)相冊(cè)管理的簡(jiǎn)單功能
這篇文章主要介紹了javaWEB實(shí)現(xiàn)相冊(cè)管理的簡(jiǎn)單功能,包括圖片的上傳、統(tǒng)一瀏覽、單個(gè)下載、單個(gè)刪除,還有一個(gè)功能只能刪除自己上傳的文件,感興趣的小伙伴們可以參考一下2015-11-11
利用Java實(shí)現(xiàn)更改Word中的頁(yè)面大小和頁(yè)面方向
這篇文章主要為大家詳細(xì)介紹了一種高效便捷的方法——通過(guò)Java應(yīng)用程序,以編程方式更改Word中的頁(yè)面大小和頁(yè)面方向,感興趣的可以了解一下2023-03-03
Delegate IDE build/run actions to maven 配置會(huì)影響程序運(yùn)行嗎?
這篇文章主要介紹了Delegate IDE build/run actions to maven 配置會(huì)影響程序運(yùn)行嗎,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08

