アプリケーションの構築
新しいJHipsterアプリケーションの作成については、ビデオチュートリアルを参照してください。
クイックスタート
最初に、アプリケーションを作成する空のディレクトリを作成します。
mkdir myapplication
ディレクトリに移動します。
cd myapplication/
アプリケーションを生成するには、次のように入力します。
jhipster
ジェネレータからの質問に答えて、ニーズに合ったアプリケーションを作成します。これらのオプションについては、次のセクションで説明します。
アプリケーションが生成されると、Maven(Linux/Mac OS/Windows PowerShellの場合は./mvnw
、Windows Cmdの場合はmvnw
)またはGradle(Linux/Mac OS/Windows PowerShellの場合は./gradlew
、Windows Cmdの場合はgradlew
)を使用して起動できます。
注意 Mavenを使用していて、./mvnw
コマンドを最初に実行した後フロントエンドファイルを変更した場合は、./mvnw -Pwebapp
を実行して最新のフロントエンドバージョンを表示する必要があります(Gradleはフロントエンドの変更を自動的に検出し、必要に応じてフロントエンドを再コンパイルします)。
アプリケーションはhttp://localhost:8080にあります。
重要 JavaScript/TypeScriptコードの「ライブリロード」を行いたい場合は、npm start
を実行する必要があります。詳細については、開発でのJHipsterの使用ページにアクセスしてください。
「ライブリロード」を使用している場合は、./mvnw -P-webapp
または./gradlew -x webapp
を使用してクライアント側のタスクを除外することで、サーバの起動を高速化できます。特にGradleの速度が向上します。
アプリケーション生成時の質問
いくつかの質問は、以前に行った選択によって変わります。たとえば、SQLデータベースを選択しなかった場合は、Hibernateキャッシュを構成する必要はありません。
どの種類のアプリケーションを作成したいですか?(Which type of application would you like to create?)
アプリケーションのタイプは、マイクロサービスアーキテクチャを使用するかどうかによって異なります。マイクロサービスの詳細な説明はここにあります。不明な場合は、デフォルトの"Monolithic application"を使用してください。
次のいずれかを使用できます。
- Monolithic application:これは古典的で、フリーサイズのアプリケーションです。使用と開発が容易であり、推奨されるデフォルトです。
- Microservice application:マイクロサービスアーキテクチャでは、これはサービスの1つです。
- Microservice gateway:マイクロサービスアーキテクチャでは、これはリクエストをルーティングして保護するエッジサーバです。
アプリケーションのベース名は何ですか?(What is the base name of your application?)
アプリケーションの名前です。
デフォルトのJavaパッケージ名は何ですか?(What is your default Java package name?)
Javaアプリケーションはこれをルート・パッケージとして使用します。この値はYeomanによって保存されるため、次にジェネレータを実行するときには、最後の値がデフォルトになります。 この値は、新しい値を指定することで上書きできます。
どの 種類 の認証を使用しますか?(Which type of authentication would you like to use?)
可能なすべてのオプションを以下に示します。
- JWT認証:JSON Web Token(JWT)を使用します。これはデフォルトの選択肢であり、ほとんどの人が使用しています。
- OAuth 2.0/OIDC認証:アプリケーションの外部で認証を処理します。KeycloakまたはAuth0などのOpenID Connectサーバを使用します。これはJWTよりも安全ですが、OpenID Connectサーバを設定する必要があるため、少し複雑です。デフォルトでは、JHipsterはOpenID Connectサーバからのユーザデータを同期するため、データベースが必要になることに注意してください。
- HTTPセッション認証:古典的なセッションベースの認証メカニズムで、Spring Securityで通常行われるものです。
詳細については、アプリケーションのセキュリティ保護ページを参照してください。
どの 種類 のデータベースを使用しますか?(Which type of database would you like to use?)
次のいずれかを選択できます。
- SQLデータベース(H2, MySQL, MariaDB, PostgreSQL, MSSQL, Oracle)。Spring Data JPAでアクセスします。
- MongoDB
- Cassandra
- Couchbase
- Neo4j
- データベースなし(JWT認証でマイクロサービス・アプリケーションを使用する場合にのみ使用可能)
どの プロダクション データベースを使用しますか?(Which production database would you like to use?)
これは、「プロダクション」のプロファイルで使用するデータベースです。構成するには、src/main/resources/config/application-prod.yml
ファイルを変更してください。
Oracleを使用する場合は、Oracleデータベースの使用時の現在の制限に注意する必要があります。
どの 開発 データベースを使用しますか?(Which development database would you like to use?)
これは、「開発」プロファイルで使用するデータベースです。次のいずれかを使用できます。
- インメモリで実行するH2:これはJHipsterを使用する最も簡単な方法ですが、サーバーを再起動するとデータが失われます。
- データをディスクに保存するH2:これは、アプリケーションの再起動時にデータが失われないため、インメモリで実行するよりも優れたオプションです。
- プロダクション用に選択したのと同じデータベース:セットアップは少し複雑ですが、最終的にはプロダクションで使用するデータベースと同じデータベースで作業する方がよいでしょう。これは、開発ガイドで説明されているように、liquibase-hibernateを使用する最善の方法でもあります。
構成するには、src/main/resources/config/application-dev.yml
ファイルを変更してください。
Springのキャッシュ抽象化を使用しますか?(Do you want to use the Spring cache abstraction?)
Springのキャッシュ抽象化では、さまざまなキャッシュ実装を使用できます。ehcache(ローカルキャッシュ)、Caffeine(ローカルキャッシュ)、Hazelcast(分散キャッシュ)、Infinispan(分散キャッシュ)、Memcached(その他の分散キャッシュ)、またはRedis(単一サーバキャッシュとして構成)を使用できます。これはアプリケーションのパフォーマンスに非常にプラスの影響を与える可能性があるため、推奨されるオプションです。
Hibernateの第2レベルのキャッシュを使用しますか?(Do you want to use Hibernate 2nd level cache?)
このオプションは、SQLデータベースの使用を選択し(JHipsterはSpring Data JPAを使用してアクセスするため)、前の質問でキャッシュプロバイダを選択した場合にのみ使用できます。
Hibernateは、JHipsterで使用されるJPAプロバイダであり、キャッシュプロバイダを使用してパフォーマンスを大幅に向上させることができます。そのため、このオプションを使用し、アプリケーションのニーズに応じてキャッシュ実装を調整することを強くお勧めします。
MavenとGradleのどちらを使用しますか?(Would you like to use Maven or Gradle?)
生成されたJavaアプリケーションは、MavenまたはGradleを使用して構築できます。Mavenはより安定しており、より成熟しています。Gradleはより柔軟で、拡張が容易で、話題が豊富です。