java接口构建英雄属性_Java开发学习心得(三):项目结构
3 項(xiàng)目結(jié)構(gòu)
經(jīng)過前面一系列學(xué)習(xí),差不多對(duì)Java的開發(fā)過程有了一定的了解,為了能保持一個(gè)良好的項(xiàng)目結(jié)構(gòu),考慮到接下來要進(jìn)行開發(fā),還需要學(xué)習(xí)一下Java的項(xiàng)目結(jié)構(gòu)
下面以兩個(gè)項(xiàng)目結(jié)構(gòu)為參照
圖1
圖2
第一個(gè)是我自己學(xué)習(xí)時(shí)的Demo,一邊學(xué)一邊建文件,應(yīng)該有些錯(cuò)誤的地方,第二張是從網(wǎng)上看到的一個(gè)結(jié)構(gòu)比較清晰的圖片
圖1的結(jié)構(gòu)完整一點(diǎn),就以圖1為主一點(diǎn)點(diǎn)講起
3.1 src
因?yàn)槲矣玫氖荕aven,大方向上項(xiàng)目?jī)纱笪募A分別是src和target,以及一個(gè)pom.xml配置文件,src目錄里是項(xiàng)目工程的源碼文件,配置文件和資源文件等,其下一級(jí)是main和test這兩個(gè)文件夾
3.1.1 main
main文件夾下是主要的工程源文件,然后下面又是兩個(gè)文件夾:java和resources,其實(shí)上面也講了,而且顧名思義,java里面是源碼文件,resources里面是資源文件
3.1.1.1 java
這之下的文件結(jié)構(gòu)可以參考上面的圖2了,大體上就是model-mapper-service-controller,其他還有公共類和表現(xiàn)層等,這里在下面單獨(dú)分一個(gè)章節(jié)來說
3.1.1.2 resources
資源文件夾默認(rèn)就是這個(gè)樣子,application.properties是用來填寫各種配置的,比如數(shù)據(jù)庫(kù)連接的配置信息、日志組件的配置信息等,有些人會(huì)改成yml后綴名,里面的格式就不盡相同了,在前面也講過,這里就不再贅述。
除此之外,各種組件的配置文件也在這個(gè)文件夾下
還有一個(gè)主要的作用是存放靜態(tài)文件資源,包括需要訪問的jsp、html、css、js、圖片等,還有代碼模板
3.1.2 test
如題所述,單元測(cè)試用的
3.2 target
target是有存放項(xiàng)目構(gòu)建后的文件和目錄,jar包、war包、編譯的class文件等
target里的所有內(nèi)容都是maven構(gòu)建的時(shí)候生成的
jar 包就是 java archive file java 的一種文檔格式。jar文件非常類似zip
WAR是Sun提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個(gè)壓縮包。這個(gè)包中的文件按一定目錄結(jié)構(gòu)來組織: 通常其根目錄下包含有Html和Jsp文件或者包含這兩種文件的目錄,另外還會(huì)有一個(gè)WEB-INF目錄,這個(gè)目錄很重要。通常在WEB-INF目錄下有一個(gè)web.xml文件和一個(gè)classes目錄,web.xml是這個(gè)應(yīng)用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。
通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當(dāng)然也可以放到系統(tǒng)的CLASSPATH中,但那樣移植和管理起來不方便
target里的所有內(nèi)容都是maven構(gòu)建的時(shí)候生成的
4 Java的工程文件結(jié)構(gòu)
傳統(tǒng)的三層不用再解釋了,在Java里對(duì)應(yīng)數(shù)據(jù)訪問層的是DAO,進(jìn)行數(shù)據(jù)交互,對(duì)應(yīng)業(yè)務(wù)邏輯層的是Service層,這里寫邏輯代碼,然后就是UI層
4.1 幾種對(duì)象的解釋
上面提到DAO,這里簡(jiǎn)單說說一些相關(guān)的簡(jiǎn)寫,在一些源碼里看到了,初學(xué)時(shí)有點(diǎn)懵
DTO的用法: 比如我們一張表有100個(gè)字段,那么對(duì)應(yīng)的PO就有100個(gè)屬性。但是我們界面上只要顯示10個(gè)字段,客戶端用WEB service來獲取數(shù)據(jù),沒有必要把整個(gè)PO對(duì)象傳遞到客戶端,這時(shí)我們就可以用只有這10個(gè)屬性的DTO來傳遞結(jié)果到客戶端,這樣也不會(huì)暴露服務(wù)端表結(jié)構(gòu).到達(dá)客戶端以后,如果用這個(gè)對(duì)象來對(duì)應(yīng)界面顯示,那此時(shí)它的身份就轉(zhuǎn)為VO。DTO還有減少請(qǐng)求的次數(shù)、簡(jiǎn)化傳輸對(duì)象、避免代碼重復(fù)等作用。 5. ORM(O/R Mapping,Object Relational Mapping):對(duì)象關(guān)系映射
4.2 實(shí)際的項(xiàng)目文件應(yīng)該如何設(shè)計(jì)
可以參考圖2
還可以看看這篇spring boot 項(xiàng)目開發(fā)常用目錄結(jié)構(gòu)
總結(jié)
以上是生活随笔為你收集整理的java接口构建英雄属性_Java开发学习心得(三):项目结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么通过id渲染页面_「快页面」动态配置
- 下一篇: java arraystoreexcep