ラインおよびJava足場、統一されたプロジェクトチームの構造のスタイル

Mavenのは、Mavenの-原型-webappのを提供してきましたが、このような骨格とのmaven-原型・クイックスタート・プロジェクトが急速にインフラ整備プロジェクトを構築するために私たちを助けますが、アーキテクチャとプロジェクト開発の原型を提供するデフォルトの初期化が需要を満たすことができない、この時間は、出会いを書き込む必要がありますプロジェクト要件の原型

生成されたarchrtypeを使用して、図のカスタム設定項目

読書への関心を刺激し、自己定義原型マップ生成プロジェクトを使用して、プロジェクトの構造を配置するには

基本的にはクラスがされている archetype あなたは本当に疲れ道を学ぶせるために、生成されました

原型とは何ですか

それは単に、テンプレートツールとして理解することができarchetype、我々はすぐに基本的なインフラプロジェクトを作成することができます。例えば、我々は使用ideaを作成するmaven webことが多い、時間のプロジェクトを選択しmaven-archetype-webapp使用して、プロジェクトを初期化するためのテンプレートをmaven-archetype-webapp生成に含まれたプロジェクトwebappが含まれるディレクトリ、web設定ファイルを

原型組成

カスタムを書き込むにはarchetype、まず第一に、あなたは、組成物の原型を知っている必要があります。原型は、4つの部分から成ります。

  • 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四つの成分、2つのpomファイル、archtype-metadataファイルおよび5プロトタイプファイル[ __rootArtifactId__-*]、その__rootArtifactId__テンプレートプロジェクトを生成するときに、代替の値に渡されますが
  • archtypeメタデータプロファイル
    • 1.使用を定義するarchetypeパラメータを渡すテンプレートプロジェクトの必要性を生成します
      <!--需要输入的属性-->
          <requiredProperties>
              <requiredProperty key="groupId">
                  <!--默认的groupId-->
                  <defaultValue>com.h2t.test</defaultValue>
              </requiredProperty>
              <requiredProperty key="artifactId">
                  <!--默认的artifactId-->
                  <defaultValue>demo</defaultValue>
              </requiredProperty>
              <requiredProperty key="package">
                  <!--默认的包名和groupId一样-->
                  <defaultValue>${groupId}</defaultValue>
              </requiredProperty>
          </requiredProperties>
      复制代码
      ${}変数が渡されたMavenのコマンドラインによって識別されます
    • 2.プロトタイプファイルを定義します
          <module id="${rootArtifactId}-web" name="${rootArtifactId}-web" dir="__rootArtifactId__-web">
                  <fileSets>
                      <fileSet filtered="true" encoding="UTF-8" packaged="true">
                          <directory>src/main/java</directory>
                          <includes>
                              <include>**/*.*</include>
                          </includes>
                      </fileSet>
                      <fileSet filtered="true" encoding="UTF-8" packaged="true">
                          <directory>src/test/java</directory>
                          <includes>
                              <include>**/*.*</include>
                          </includes>
                      </fileSet>
                      <fileSet encoding="UTF-8">
                          <directory>src/main/resources</directory>
                          <includes>
                              <include>**/*.*</include>
                          </includes>
                      </fileSet>
                      <fileSet encoding="UTF-8">
                          <directory>src/test/resources</directory>
                          <includes>
                              <include>**/*.*</include>
                          </includes>
                      </fileSet>
                  </fileSets>
              </module>
      复制代码
      moduleプロパティの説明:id:サブモジュールプロジェクトartifactId dir:サブモジュールのプロジェクトのソースファイルは、archetype-resources内部に対応directory name:サブモジュールの名前。
  • プロトタイプのポンポンファイル
    • 1. 5つのサブモジュールを定義します
          <!--项目子模块-->
          <modules>
              <module>${rootArtifactId}-common</module>
              <module>${rootArtifactId}-dao</module>
              <module>${rootArtifactId}-service</module>
              <module>${rootArtifactId}-web</module>
              <module>${rootArtifactId}-model</module>
          </modules>
      复制代码
    • 統一された管理サブモジュール依存バージョン
      <dependencyManagement>
                  <!--modules-->
                  <dependency>
                      <groupId>${groupId}</groupId>
                      <artifactId>${rootArtifactId}-common</artifactId>
                      <version>${version}</version>
                  </dependency>
      
                  <dependency>
                      <groupId>${groupId}</groupId>
                      <artifactId>${rootArtifactId}-dao</artifactId>
                      <version>${version}</version>
                  </dependency>
      
                  <dependency>
                      <groupId>${groupId}</groupId>
                      <artifactId>${rootArtifactId}-service</artifactId>
                      <version>${version}</version>
                  </dependency>
      
                  <dependency>
                      <groupId>${groupId}</groupId>
                      <artifactId>${rootArtifactId}-model</artifactId>
                      <version>${version}</version>
                  </dependency>
              </dependencies>
          </dependencyManagement>
      复制代码
      所望のサブモジュールは、従属で定義されているpom必要はない、サブモジュール依存<version>タブ
  • プロトタイプWebモジュールのファイル記述
    それは原型を使用して書かれている簡単なMavenプロジェクトは、テンプレートクラスのプロジェクトを生成しています

附属書:スーパーマンの原型コード


[スーパーマン原型]を使用してクイックスタートガイド

  • 1.ダウンロード元
    git clone https://github.com/TiantianUpup/superman.git
    复制代码
  • 2.スーパーマンエンジニアリング、ローカルリポジトリにインストールし、次のコマンドを実行します。
    mvn clean install
    复制代码
  • 3.カスタムの原型プロジェクトの初期化を使用します
    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
    复制代码
    パラメータ説明
    -DgroupIdIDは、プログラムはデフォルトのパケットグループIDと同じ名前のグループ
    DartifactIdの一意の識別子アイテム、アイテム名:
    -DarchetypeGroupId:スーパーマンのグループIDを、値を変更する必要はありません
    -DarchetypeArtifactId。たartifactIdのスーパーマン、の値を変更する必要はありません
  • 4.ために使用する設定ファイルを移動しarchetype、プロジェクトが生成されるときresource、次のファイルが存在しないので、現在の設定ファイルがでweb次のモジュールresourceパッケージの下に、プロジェクトの成功は、手動でファイルを移動する必要があります後に作成されたweb次のモジュールのresourceフォルダ、およびresourceマークへのファイルResources Root
  • 修正は、リソースフォルダ内の構成ファイルフォルダがありapplication.propertieslogback.propertieslogback-spring.xml3つのプロファイルを
    • 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層のパッケージ名、デフォルトMybatiPlusmapperファイルが保存されるresourceの下でmapperフォルダ変更することができます

    • logback.properties設定ファイルを変更しlogback.properties定義するerrorログのレベルをし、infoログレベルのアドレスを保存

      LOG_ERROR_HOME=  
      LOG_INFO_HOME=
      复制代码
    • logback-spring.xml設定ファイルが変更logback-spring.xmlそれがある場合は、ログ出力ルールの定義であるwindowsことがある場合は、変更することなくシステムをlinux os、またはmac osあなたは、ログ保存したアドレスを変更する必要があり、

      <fileNamePattern>${LOG_ERROR_HOME}//%d.log</fileNamePattern>
      复制代码

      //に修正/

  • 生成部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パックを。リソースフォルダがマークされている間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..*(..))")
    复制代码
    主層リターン結果を遮断するための制御部と、結果は、統一された返さカプセル化
  • 9プロジェクトを開始する
    webモジュールでRunner起動するクラスのクラス、あなたはクラスの実行を開始することができ、デフォルトのポートは8081です

添付:スーパーマンの原型は、デモプロジェクトのアドレスを生成

限られた開発経験へようこそフォークと星は、[フォーカスを描く]、いくつかの場所が悪いと考えることができる、言及バグを歓迎しました。そしてarchetype唯一の需要を言及することを歓迎し、いくつかの基本的な関数を定義しています。


おすすめ

転載: juejin.im/post/5d53c08ff265da03ed194974