国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

擼一個Java腳手架,一統團隊項目結構風格

邱勇 / 1973人閱讀

摘要:這個文件會出現在創建的模板工程中,如果是單模塊工程,則是對整個項目的依賴管理如果是多模塊工程,該是總文件,該文件中會定義項目的子模塊以及對子模塊的依賴進行管理等,子模塊定義在子模塊下,子模塊文件只管理子模塊的依賴。

雖然maven已經提供了maven-archetype-webapp、maven-archetype-quickstart等項目骨架幫助我們快速構建項目架構,但是默認提供的archetype初始化的項目架構并不能滿足開發需求,這時候就有必要自己寫一個滿足項目需求的archetype了
使用自定義archrtype生成的項目結構圖

為了激發閱讀興趣,先放一張使用自定義archetype生成項目的項目結構圖

基本上的類都是archetype生成的

archetype是什么

可以簡單的理解為模板工具類,通過archetype我們可以快速的生成項目的基本架構。比如我們使用idea創建一個maven web項目時,常常會選擇maven-archetype-webapp模板來初始化項目,使用maven-archetype-webapp生成的項目中包括webapp目錄,里面包含web的配置文件

archetype的組成

要想寫一個自定義archetype,首先得知道一個archetype的組成。archetype由四部分組成:

prototype files 原型文件

位于src/main/resources/archetype-resource目錄下。prototype files 原型文件可以理解為多模塊中的子模塊或是單模塊工程中的源文件[即src文件]。這些原型文件在使用對應archetype生成項目時被生成

archetype-metadata.xml

位于src/main/resources/META-INF/maven/目錄下。該配置文件中主要列出了原型文件以及使用archetype生成模板工程需要的參數

prototype pom

位于src/main/resources/archetype-resources目錄下。這個pom文件會出現在archetype創建的模板工程中,如果是單模塊工程,則是對整個項目的依賴管理;如果是多模塊工程,該pom是總pom文件,該文件中會定義項目的子模塊以及對子模塊的依賴進行管理等,子模塊pom定義在子模塊下,子模塊pom文件只管理子模塊的依賴。

archetype pom
位于自定義archetype工程的根目錄下。這是archetype工程項目的pom文件,里面一般沒什么東西,不會出現在archetype創建的模板工程中

superman[自定義archetype]結構說明

superman項目結構圖


包含了archetype的四個組成部分,兩個pom文件,一個archtype-metadata文件和五個原型文件[__rootArtifactId__-*],其中__rootArtifactId__在生成模板工程時會被傳入的值替代

archtype-metadata配置文件

1.定義使用archetype生成模板工程需要傳入的參數


    
        
            
            com.h2t.test
        
        
            
            demo
        
        
            
            ${groupId}
        
    

${}標識的變量都是通過maven中的命令行傳進來的

2.定義原型文件

    
            
                
                    src/main/java
                    
                        **/*.*
                    
                
                
                    src/test/java
                    
                        **/*.*
                    
                
                
                    src/main/resources
                    
                        **/*.*
                    
                
                
                    src/test/resources
                    
                        **/*.*
                    
                
            
        

module屬性介紹:
id:子模塊工程的artifactId
dir:子模塊工程源文件在archetype-resources里對應的directory

name :子模塊的名字.

prototype pom文件

1.定義了五個子模塊

    
    
        ${rootArtifactId}-common
        ${rootArtifactId}-dao
        ${rootArtifactId}-service
        ${rootArtifactId}-web
        ${rootArtifactId}-model
    

子模塊依賴版本統一管理


            
            
                ${groupId}
                ${rootArtifactId}-common
                ${version}
            

            
                ${groupId}
                ${rootArtifactId}-dao
                ${version}
            

            
                ${groupId}
                ${rootArtifactId}-service
                ${version}
            

            
                ${groupId}
                ${rootArtifactId}-model
                ${version}
            
        
    

子模塊所需依賴都定義在該pom中,子模塊使用依賴時不需要標簽

原型文件以web模塊說明


就是一個簡單的maven工程,里面寫了使用archetype生成模板項目的類

附:superman archetype代碼

快速開始【superman archetype使用指南】

1.下載源碼

git clone https://github.com/TiantianUpup/superman.git

2.打開superman工程,將其安裝到本地倉庫

運行如下命令

mvn clean install

3.使用自定義archetype初始化項目

mvn archetype:generate 
-DgroupId=com.h2t.test 
-DartifactId=superman-demo 
-Dversion=1.0.0-SNAPSHOT 
-DarchetypeGroupId=com.h2t.study 
-DarchetypeArtifactId=superman -DarchetypeVersion=0.0.1-SNAPSHOT -X -DarchetypeCatalog=local

參數說明
-DgroupId組ID,默認項目的包名的組ID相同
DartifactId:項目唯一標識符,即項目名稱
-DarchetypeGroupId:superman的組ID,值不需要進行修改

-DarchetypeArtifactId:superman的artifactId,值不需要進行改變

4.移動配置文件

因為使用archetype生成項目時會將resource下面的文件丟失,所以目前將配置文件放在了web模塊下的resource包下,創建項目成功后需手動將文件移動到web模塊下的resource文件夾下,并將resource文件成標記成Resources Root

5.修改resource文件夾下的配置文件

該文件夾下有application.propertieslogback.propertieslogback-spring.xml三個配置文件

application.properties配置文件的修改

application.properties 主要是SpringMyBatisPlus和數據庫的配置信息

spring.datasource.url=jdbc:mysql://localhost:3306/your_database?characterEncoding=UTF8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your password
修改數據庫、密碼,默認用戶名為`root`
```
mybatis-plus.mapper-locations=classpath*:/mapper/*.xml  
# mybatis-plus.type-aliases-package=
```
指定`MybatisPlus`實體類別名的包,即`model`模塊的`po`層包名,默認`MybatiPlus`的`mapper`文件保存在`resource`下的`mapper`文件夾下,可自行修改

logback.properties配置文件的修改

logback.properties定義了error級別日志和info級別日志的保存地址

LOG_ERROR_HOME=  
LOG_INFO_HOME=

logback-spring.xml配置文件的修改

logback-spring.xml主要是日志輸出規則的定義,若為windows系統無需進行修改,若為linux osmac os,則需修改日志保存地址

    ${LOG_ERROR_HOME}//%d.log
將`//`修改為`/`

6 使用代碼生成器生成controllerservicedaopo層代碼

代碼生成器類位于service模塊下的generator包下,只需要初始化幾個字段值運行就可以生成相應的代碼。在運行前首先在項目根目錄下創建一個mp-generator-output文件夾,該文件夾的名字和OUTPUT_DIR字段值保持一致

PACKAGE_NAME

生成代碼的包名,和項目的包名一致,負責復制過去代碼會有一些小問題
-OUTPUT_DIR
生成代碼保存文件地址,默認保存在項目下的mp-generator-output文件夾下,可以修改為自定義保存地址

AUTHOR

注釋中作者的名字

DRIVER_NAME

數據庫驅動

HOST

數據庫主機號

PORT

數據庫端口

DATABASE

數據庫名字

USERNAME

數據庫用戶名

PASSWORD

數據庫密碼

7.將生成的代碼移動到對應模塊對應包下

controller文件夾

實體類對應的Controller,將該目錄下的類移到web模塊下的controller包下

mapper文件夾

實體類對應的DAO層,該目錄下包含xml文件和對應實體的接口類,將xml文件移到dao模塊resource 下的mapper文件夾下,需自行建立mapper文件夾,將接口移到dao模塊下的mapper包下并在接口類上添加@Mapper注解,需自行建立 mapper包。同時將resource文件夾標記成Resources root

service 對應實體類接口

- `impl` 對應實體類接口實現類

將`service`目錄下的接口移到`service`模塊下的`service`包下,`impl`目錄下的類移到`service`模塊下的`service.impl`包下

po文件夾

將該目錄下的類移到model模塊下的po包下,并修改繼承關系,統一繼承BasePO類,因為BasePO類 包含了idgmtCreategmtModifieddeleted這些數據庫基本字段,需將生成的實體類手動刪除這些重復字段。同時自動生成的po類缺失了@TableName@TableField注解需手動補充。注解的使用方式可參考BasePO

8.修改web模塊aspect包下的環繞通知

@Around("execution(* yourpackage.controller..*(..))")

該切面主要用于攔截controller層返回的結果,將其封裝成統一結果返回

9 啟動項目

web模塊下的Runner類為啟動類,運行該類即可啟動,默認端口為8081

附:superman archetype生成demo工程地址

歡迎fork與star[劃重點],由于開發經驗有限,有些地方可能考慮不周,歡迎提bug。并且該archetype只定義了一些基礎功能,歡迎提需求。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76141.html

相關文章

  • 微服務橫行的今天, 你的文檔跟上節奏了么?

    摘要:納尼隔壁少林派表示自家金剛技壓群雄在座各位都是。。。納尼你覺得寫太繁瑣了你不喜歡我們還有或者等等一大堆工具呢。納尼沒有你還是覺得無法接受好吧那么筆者推薦類似這類更友好的工具你可以導入導出其他格式也可以使用其來撰寫。 說起微服務, 想必現在的技術圈內人士個個都能談笑風云, 娓娓道來。的確, 技術變革日新月異, 各種工具框架雨后春筍般涌現, 現在我們可以輕巧便捷地根據自己的業務需求, 構建...

    liaoyg8023 評論0 收藏0
  • 基于IDEA Plugin插件開發,一個DDD手架

    摘要:作者小傅哥博客沉淀分享成長,讓自己和他人都能有所收獲接下來還需要把我們創建的工程模板以及數據服務配置到中,這樣在插件啟動的時候就可以把我們自己插件啟動起來了。作者:小傅哥博客:https://bugstack.cn沉淀、分享、成長,讓自己和他人都能有所收獲!???? 接下來還需要把我們創建的工程模板以及數據服務配置到 plugin.xml 中,這樣在插件啟動的時候就可以...

    不知名網友 評論0 收藏0
  • ESLint 在中大型團隊的應用實踐

    摘要:自動化接入和升級方案通過命令行工具提供一鍵接入升級能力,同時集成到團隊腳手架中,大大降低了工程接入和維護的成本。原始代碼經過解析器的解析,在管道中逐一經過所有規則的檢查,最終檢測出所有不符合規范的代碼,并輸出為報告。 引言 代碼規范是軟件開發領域經久不衰的話題,幾乎所有工程師在開發過程中都會遇到,并或多或少會思考過這一問題。隨著前端應用的大型化和復雜化,越來越多的前端工程師和團隊開始重...

    alogy 評論0 收藏0
  • 來,webpack一個多頁面應用手架!!!

    摘要:抽取文件插件引入入口配置多個實例使用正則匹配到每個頁面對應文件夾下的文件并配置來進行解析從而實現對插件實例引入方法總結一個簡易版的多頁面應用腳手架就這樣搞定啦是不是很簡單地址喜歡的童鞋給個哈您的支持就是我最大的動動動力 使用 webpack 構建多頁面應用 前言 之前使用 vue2.x + webpack3.x 擼了一個 vue 單頁腳手架 vue 版 spa 腳手架 有興趣的同學可以...

    王偉廷 評論0 收藏0
  • 基于vue+mint-ui的mobile-h5的項目說明

    摘要:把打包的目錄修改成生產環境需要的目錄。是域名的配置只要統一配置一項即可,方便。旨在增強團隊開發協作提高代碼質量和打造開發基石的編碼規范,以下規范是團隊基本約定的內容,必須嚴格遵循。 Vue作為前端三大框架之一,其已經悄然成為主流,學會用vue相關技術來開發項目會相當輕松。 對于還沒學習或者還沒用過vue的初學者,基礎知識這里不作詳解,推薦先去相關官網,學習一下vue相關的基礎知識。 a...

    vboy1010 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<