springBoot項(xiàng)目常用目錄解讀
springBoot項(xiàng)目常用目錄
springBoot項(xiàng)目的目錄結(jié)構(gòu)及名規(guī)范
介紹基于SpringBoot開發(fā)時(shí)的目錄結(jié)構(gòu)及命名規(guī)范,通過介紹能夠?yàn)槟憬鉀Q,在實(shí)際項(xiàng)目中如何規(guī)劃目錄結(jié)構(gòu)?如何命名目錄更規(guī)范?各個(gè)目錄分別代表什么含義?等三個(gè)問題。
目錄說明
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 // 過濾器 |- constant // 存放常量 |- utils // 工具 |- exception // 異常 |- controller // 控制層(將請(qǐng)求通過URL匹配,分配到不同的接收器/方法進(jìn)行處理,然后返回結(jié)果) |- service // 服務(wù)層接口 |- impl // 服務(wù)層實(shí)現(xiàn) |- mapper/repository // 數(shù)據(jù)訪問層,與數(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ù)訪問層對(duì)應(yīng)的XML配置 |- *Mapper.xml |- ... |- application.yml // 公共配置 |- application-dev.yml // 開發(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)存放編寫的測(cè)試用例 |- target // 編譯打包輸出目錄(自動(dòng)生成,不需要?jiǎng)?chuàng)建) |- pom.xml // 該模塊的POM文件 |- sql // 項(xiàng)目需要的SQL腳本 |- doc // 精簡(jiǎn)版的開發(fā)、運(yùn)維手冊(cè) |- .gitignore // 哪些文件不用傳到版本管控工具中 |- pom.xml // 工程總POM文件 |- README.md // 注意事項(xiàng) External Libraries // 相關(guān)JAR包依賴
注意事項(xiàng)
(1). mapper/repository,數(shù)據(jù)訪問層,與數(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框架的類或接口。可以包含類似與JavaBean屬性和對(duì)屬性訪問的setter和getter方法的對(duì)象。VO(View Object)
:視圖對(duì)象,用于展示層顯示,代表展示層需要顯示的數(shù)據(jù)。它的作用是把某個(gè)指定頁(yè)面/組件需要的所有數(shù)據(jù)封裝起來。DTO(Data Transfer Object)
:數(shù)據(jù)傳輸對(duì)象,用于服務(wù)層與持久層之間的數(shù)據(jù)傳輸對(duì)象,代表服務(wù)層需要接收/返回的數(shù)據(jù)。DO(Domain Object)
: 領(lǐng)域?qū)ο?,就是從現(xiàn)實(shí)世界中抽象出來的有形或無形的實(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傳輸過程中 -> DTO;POJO用作表示層 -> VO
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于JavaSwing+mysql開發(fā)一個(gè)學(xué)生社團(tuán)管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
項(xiàng)目使用Java swing+mysql開發(fā),可實(shí)現(xiàn)基礎(chǔ)數(shù)據(jù)維護(hù)、用戶登錄注冊(cè)、社團(tuán)信息列表查看、社團(tuán)信息添加、社團(tuán)信息修改、社團(tuán)信息刪除以及退出注銷等功能、界面設(shè)計(jì)比較簡(jiǎn)單易學(xué)、適合作為Java課設(shè)設(shè)計(jì)以及學(xué)習(xí)技術(shù)使用,需要的朋友參考下吧2021-08-08Mybatis實(shí)現(xiàn)查詢相冊(cè)數(shù)據(jù)列表流程講解
這篇文章主要介紹了Mybatis實(shí)現(xiàn)查詢相冊(cè)數(shù)據(jù)列表流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-12-12Mybatis基礎(chǔ)概念與高級(jí)應(yīng)用小結(jié)
這篇文章主要介紹了Mybatis基礎(chǔ)回顧與高級(jí)應(yīng)用,本文內(nèi)容有點(diǎn)小長(zhǎng),希望大家耐心閱讀,此文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06Spring?Cache抽象-使用SpEL表達(dá)式解析
這篇文章主要介紹了Spring?Cache抽象-使用SpEL表達(dá)式解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12每天練一練Java函數(shù)與算法Math函數(shù)總結(jié)與字符串轉(zhuǎn)換整數(shù)
這篇文章主要介紹了Java函數(shù)與算法Math函數(shù)總結(jié)與字符串轉(zhuǎn)換整數(shù),每天練一練,水平在不知不覺中提高,需要的朋友快過來看看吧2021-08-08java生成字母數(shù)字組合的隨機(jī)數(shù)示例 java生成隨機(jī)數(shù)
這篇文章主要介紹了java生成字母數(shù)字組合的隨機(jī)數(shù)的示例,大家參考使用吧2014-01-01關(guān)于try 和 throw 簡(jiǎn)單使用示例
每過一段時(shí)間,就總是會(huì)對(duì)try有點(diǎn)生疏,特別寫了個(gè)程序來測(cè)試以下,有時(shí)候 throw是底層拋出來的,你不處理,默認(rèn)就throw了2013-08-08