JHipsterの紹介

JHipsterの紹介

1. 前書き

この記事では、JHipsterの概要を簡単に説明し、コマンドラインツールを使用して単純なモノリシックアプリケーションとカスタムエンティティを作成する方法を示します。

また、各ステップで生成されたコードを調べ、ビルドコマンドと自動化されたテストについても説明します。

2. Jhipsterとは

JHipsterは、一言で言えば、a high-level code generator built upon an extensive list of cutting-edge development tools and platforms.です。

ツールの主なコンポーネントは次のとおりです。

  • Yeoman、フロントエンドスキャフォールディングツール

  • 古き良きSpring Boot

  • AngularJS、著名なJavascriptフレームワーク。 JHipsterはAngularJS 2でも動作します

JHipsterは、いくつかのシェルコマンドを使用して、フレンドリーで応答性の高いフロントエンド、ドキュメント化されたREST API、包括的なテストカバレッジ、基本的なセキュリティ、データベース統合を備えた本格的なJava Webプロジェクトを作成します! 結果のコードはよくコメントされており、業界のベストプラクティスに従っています。

それによって活用される他の主要な技術は次のとおりです。

生成されたアプリケーションでこれらすべてのアイテムを使用する必要はありません。 オプションの項目は、プロジェクトの作成中に選択されます。

JHipster App

JHipsterが生成した美しいアプリケーション。 これは、この記事全体で行う作業の結果です。

3. インストール

JHipsterをインストールするには、最初にすべての依存関係をインストールする必要があります。

AngularJS 2を使用する場合は、これで十分です。 ただし、if you prefer to go with AngularJS 1 instead, you would also need to install Bower and Gulp

最後に、JHipster自体をインストールするだけです。 それが最も簡単な部分です。 JHipsterはYeoman generatorであり、これはJavascriptパッケージであるため、インストールは単純なシェルコマンドを実行するのと同じくらい簡単です。

yarn global add generator-jhipster

それでおしまい! JHipsterジェネレーターのインストールにはYarnパッケージマネージャーを使用しました。

4. プロジェクトを作成する

To create a JHipster project essentially is to build a Yeoman project。 すべてはyoコマンドで始まります:

mkdir example-app && cd example-app
yo jhipster

これにより、example-appという名前のプロジェクトフォルダが作成され、プロジェクトの作成を順を追って説明するYeomanのコマンドラインインターフェイスが起動します。

このプロセスには15のステップが含まれます。 各ステップで利用可能なオプションを調べることをお勧めします。 この記事の範囲では、デフォルトのオプションから大きく逸脱することなく、単純なMonolithicアプリケーションを作成します。

この記事に最も関連する手順は次のとおりです。

  • Type of applicationMonolithic application (recommended for simple projects)を選択します

  • Installation of other generators from the JHipster Marketplace –タイプN.このステップでは、クールなアドオンをインストールすることができます。 一般的なものには、データ追跡を可能にするエンティティ監査があります。 bootstrap-material-design、トレンディなMaterial Designコンポーネント、および角度データテーブルを使用

  • Maven or GradleMavenを選択します

  • Other technologies –オプションを選択せず​​、Enterを押すだけで次のステップに進みます。 ここで、Google、Facebook、Twitterでソーシャルログインをプラグインすることを選択できます。これは非常に便利な機能です。

  • Client framework[BETA] Angular 2.x.を選択しますAngularJS1を使用することもできます

  • Enable internationalizationYと入力し、母国語としてEnglishを選択します。 第二言語と同じ数の言語を選択できます

  • Test frameworksGatlingProtractorを選択します

image

JHipsterはプロジェクトファイルを作成し、依存関係のインストールを開始します。 次のメッセージが出力に表示されます。

I'm all done. Running npm install for you to install the required
   dependencies. If this fails, try running the command yourself.

依存関係のインストールには少し時間がかかる場合があります。 終了すると、以下が表示されます。

Server application generated successfully.

Run your Spring Boot application:
 ./mvnw

Client application generated successfully.

Start your Webpack development server with:
npm start

これでプロジェクトが作成されました。 プロジェクトのルートフォルダーでメインコマンドを実行できます。

./mvnw #starts Spring Boot, on port 8080
./mvnw clean test #runs the application's tests
yarn test #runs the client tests

JHipster generates a README file, placed right in the root folder of our project。 このファイルには、プロジェクトに関連する他の多くの便利なコマンドを実行するための指示が含まれています。

5. 生成されたコードの概要

自動生成されたファイルを見てください。 このプロジェクトは、標準のJava / Springプロジェクトにかなり似ていますが、多くの追加機能があります。

JHipsterがフロントエンドコードの作成も処理するため、package.jsonファイル、webpackフォルダー、およびその他のWeb関連のものが見つかります。

重要なファイルのいくつかを簡単に調べてみましょう。

5.1. バックエンドファイル

  • 予想どおり、Javaコードはsrc/main/javaフォルダーに含まれています

  • src/main/resourcesフォルダーには、Javaコードで使用される静的コンテンツの一部が含まれています。 ここに、国際化ファイル(i18nフォルダー内)、電子メールテンプレート、およびいくつかの構成ファイルがあります。

  • ユニットテストと統合テストはsrc/test/javaフォルダーにあります

  • パフォーマンス(ガトリング)テストはsrc/test/gatling単位です。 ただし、現時点では、このフォルダには多くのコンテンツはありません。 エンティティを作成したら、それらのオブジェクトのパフォーマンステストはここにあります

5.2. フロントエンド

  • ルートフロントエンドフォルダはsrc/main/webappです

  • appフォルダーには、AngularJSモジュールの多くが含まれています

  • i18nには、フロントエンド部分の国際化ファイルが含まれる。

  • ユニットテスト(Karma)はsrc/test/javascript/specフォルダーにあります

  • エンドツーエンドテスト(分度器)はsrc/test/javascript/e2eフォルダーにあります

6. カスタムエンティティの作成

エンティティは、JHipsterアプリケーションの構成要素です。 これらは、UserTaskPostCommentなどのビジネスオブジェクトを表します。

JHipsterを使用してエンティティを作成するのは、簡単なプロセスです。 プロジェクト自体を作成したのと同じように、コマンドラインツールを使用してオブジェクトを作成するか、後でプロジェクトにインポートできるエンティティのJSON表現を生成するオンラインツールであるJDL-Studioを使用してオブジェクトを作成できます。

この記事では、コマンドラインツールを使用して、PostCommentの2つのエンティティを作成しましょう。

Postには、タイトル、テキストコンテンツ、および作成日が必要です。 また、Postの作成者であるユーザーに関連している必要があります。 Userには、多くのPostsを関連付けることができます。

Postは、0個または多数のCommentsを持つこともできます。 各Commentには、テキストと作成日があります。

Postエンティティの作成プロセスを起動するには、プロジェクトのルートフォルダーに移動し、次のように入力します。

yo jhipster:entity post

次に、インターフェースに表示される手順に従います。

  • タイプStringtitleという名前のフィールドを追加し、フィールドにいくつかの検証ルールを追加します(RequiredMinimum length、およびMaximum length

  • タイプStringcontentというフィールドをもう1つ追加し、それもRequiredにします。

  • タイプLocalDatecreationDateという名前の3番目のフィールドを追加します

  • 次に、Userとの関係を追加しましょう。 エンティティUserがすでに存在していることに注意してください。 プロジェクトの構想中に作成されました。 他のエンティティの名前はuser、関係名はcreator、タイプはmany-to-one、表示フィールドはname,であり、関係を%にすることをお勧めします。 (t6)s

  • DTOの使用を選択せず​​、代わりにDirect entityを使用してください

  • リポジトリをサービスクラスに直接注入することを選択します.実際のアプリケーションでは、RESTコントローラーをサービスクラスから分離する方がおそらく合理的であることに注意してください。

  • 終了するには、ページネーションタイプとしてinfinite scrollを選択します

  • 必要に応じて、JHipsterに既存のファイルを上書きする許可を与える

上記のプロセスを繰り返して、タイプString,のタイプString,とタイプcreationDateの2つのフィールド、テキストを持つcommentという名前のエンティティを作成します。 Commentには、Postとの必要なmany-to-one関係も必要です。

それでおしまい! プロセスには多くのステップがありますが、完了するのにそれほど時間はかからないことがわかります。

エンティティの作成プロセスの一環として、JHipsterが多数の新しいファイルを作成し、他のいくつかを変更することに気付くでしょう。

  • jhipsterフォルダーが作成され、各オブジェクトのJSONファイルが含まれます。 これらのファイルは、エンティティの構造を記述します

  • 実際の@Entityアノテーション付きクラスは、domainパッケージに含まれています

  • リポジトリはrepositoryパッケージで作成されます

  • RESTコントローラーはweb.restパッケージに含まれます

  • 各テーブル作成のLiquibase変更ログは、resources/config/liquibase/changelogフォルダーにあります

  • フロントエンド部分では、各エンティティのフォルダがentitiesディレクトリに作成されます

  • 国際化ファイルはi18nフォルダーに設定されます(必要に応じて自由に変更してください)

  • いくつかのテスト、フロントエンド、およびバックエンドがsrc/testフォルダーに作成されます

それはかなりたくさんのコードです!

テストを自由に実行し、すべてが合格していることを再確認してください。 次のコマンドを使用して、Gatlingでパフォーマンステストを実行することもできます(これらのテストに合格するには、アプリケーションが実行されている必要があります)。

mvnw gatling:execute

フロントエンドの動作を確認する場合は、。/mvnwでアプリケーションを起動し、http://localhost:8080に移動して、adminユーザーとしてログインします(パスワードはadminです)。 )。

トップメニューのEntitiesメニュー項目の下にあるPostを選択します。 空のリストが表示され、後ですべての投稿が含まれます。 Create a new Postボタンをクリックして、包含フォームを表示します。

image

JHipsterがフォームコンポーネントと検証メッセージにどれだけ注意しているかに注目してください。 もちろん、フロントエンドを必要なだけ変更することもできますが、フォームはそのままで非常にうまく構築されています。

7. 継続的インテグレーションのサポート

JHipsterは、最もよく使用される継続的統合ツールの構成ファイルを自動的に作成できます。 このコマンドを実行するだけです。

yo jhipster:ci-cd

そして質問に答えてください。 ここでは、構成ファイルを作成するCIツール、Docker、Sonarを使用するかどうか、さらにビルドプロセスの一部としてHerokuにデプロイするかどうかを選択できます。

ci-cdコマンドは、次のCIツールの構成ファイルを作成できます。

  • Jenkins:ファイルはJenkinsFileです

  • Travis CI:ファイルは.travis.ymlです

  • サークルCI:ファイルはcircle.ymlです

  • GitLab:ファイルは.gitlab-ci.ymlです

8. 結論

この記事では、JHipsterの機能について少し説明しました。 もちろん、ここで説明できる以上のことがたくさんあるので、間違いなくofficial JHipster websiteを調べ続けてください。

そしていつものように、コードは利用可能なover on GitHubです。