Bootの使用方法について詳しく説明します。ビルドシステム、自動構成、アプリケーションの実行方法などのトピックを扱います。Bootのベストプラクティスもいくつか取り上げています。Bootに関して特別なことは何もありませんが(それは使用する単なるライブラリにすぎません)、従えば、開発プロセスを少し簡単にするいくつかの推奨事項があります。Bootを使用する場合は、このセクションに進む前に入門ガイドを参照してください。セントラル」リポジトリに公開されたアーティファクトを消費できるビルドシステムを選択することを強くお勧めします。MavenまたはGradleを選択することをお勧めします。Bootを他のビルドシステム(Antなど)で動作させることは可能ですが、それらは特に十分にサポートされていません。Bootの各リリースは、サポートする依存関係の精選されたリストを提供します。Bootが管理するため、ビルド構成のこれらの依存関係のバージョンを提供する必要はありません。Boot自体をアップグレードすると、これらの依存関係も一貫した方法でアップグレードされます。Bootの推奨事項を上書きすることもできます。Bootで使用できるすべてのSpringモジュールと、サードパーティライブラリの洗練されたリストが含まれています。)として利用可能です。Frameworkの基本バージョンに関連付けられています。バージョンを指定しないことを強くお勧めします。プロジェクトから継承して、適切なデフォルトを取得できます。親プロジェクトは次の機能を提供します。UTF-8ソースエンコーディング。pomから継承された依存関係管理セクションは、一般的な依存関係のバージョンを管理します。この依存関係管理では、独自のpomで使用する場合、これらの依存関係の<version>タグを省略できます。実用的なリソースフィルタリング(Apache)。プレースホルダーを使用するように変更されることに注意してください。resource.delimiterと呼ばれるMavenプロパティを設定することにより、それをオーバーライドできます。次のように設定します。Bootバージョン番号のみを指定する必要があります。追加のスターターをインポートする場合、バージョン番号を安全に省略できます。この設定では、独自のプロジェクトのプロパティをオーバーライドすることにより、個々の依存関係をオーバーライドすることもできます。pom.xmlに追加します。POMからの継承を好むわけではありません。独自の企業標準親を使用する必要がある場合や、すべてのMaven構成を明示的に宣言する場合があります。依存関係を使用することにより、依存関係管理(プラグイン管理ではない)の利点を維持できます。</dependencies></dependencyManagement>上記のサンプルセットアップでは、上記で説明したように、プロパティを使用して個々の依存関係をオーバーライドすることはできません。エントリを追加する必要があります。Dataリリーストレインにアップグレードするには、pom.xmlに次の要素を追加できます。</dependencies></dependencyManagement>前の例では、BOMを指定していますが、どの依存関係タイプも同じ方法でオーバーライドできます。Bootには、プロジェクトを実行可能なjarとしてパッケージ化できるMavenプラグインが含まれています。セクションにプラグインを追加します。Bootスターターの親pomを使用する場合、プラグインのみを追加する必要があります。親で定義されている設定を変更する場合を除き、設定する必要はありません。BootのGradleプラグインのドキュメントを参照してください。Bootプロジェクトを構築することができます。AntLib”モジュールは、Antが実行可能なjarを作成するのを支援するためにも利用可能です。ファイルは、次の例のようになります。次の例のようになります。「使い方」を参照してください。スタータースターターは、アプリケーションに含めることができる便利な依存関係記述子のセットです。必要なすべてのSpringおよび関連テクノロジーのワンストップショップを利用して、サンプルコードを探したり、依存関係記述子のコピーアンドペーストを行う必要はありません。スターターには、プロジェクトを迅速に立ち上げて実行するために必要な多くの依存関係と、管理された推移的な依存関係のサポートされたセットが含まれています。名前の内容すべての公式スターターは、同様の命名パターンに従います。特定のタイプのアプリケーションです。この命名構造は、スターターを見つける必要がある場合に役立つことを目的としています。多くのIDEのMaven統合により、名前で依存関係を検索できます。押し、「spring-boot-starter」と入力して完全なリストを表示できます。Bootアーティファクト用に予約されているため、spring-bootで開始しないでください。サードパーティのスターターは通常、プロジェクトの名前で始まります。thirdpartyproject-spring-boot-starterという名前になります。Bootによって提供されます。Connectorsを使用するためのスターター。FoundryやHerokuなどのクラウドプラットフォームのサービスへの接続を簡素化します。Webアプリケーションを構築するためのスターター。代替Pom(GitHub)spring-boot-starter-jooqjOOQを使用してSQLデータベースにアクセスするためのスターター。SecurityのOAuth2リソースサーバー機能を使用するためのスターターPom(GitHub)spring-boot-starter-quartzQuartzスケジューラーを使用するためのスターターPom(GitHub)spring-boot-starter-rsocketRSocketクライアントおよびサーバーを構築するためのスターター。MVCを使用して、RESTfulを含むWebアプリケーションを構築するためのスターター。FrameworkのWebSocketサポートを使用してWebSocketアプリケーションを構築するためのスターターPom(GitHub)アプリケーションスターターに加えて、次のスターターを使用して、本番対応機能を追加できます。Bootのアクチュエーターを使用するためのスターター。Bootには、特定の技術ファセットを除外または交換する場合に使用できる次のスターターも含まれています。説明Pomspring-boot-starter-jettyJettyを埋め込みサーブレットコンテナーとして使用するためのスターター。代替Pom(GitHub)spring-boot-starter-log4j2ロギングにLog4j2を使用するためのスターター。代替Pom(GitHub)spring-boot-starter-loggingLogbackを使用したロギングのスターター。Nettyを組み込みのリアクティブHTTPサーバーとして使用するためのスターター。Pom(GitHub)spring-boot-starter-tomcatTomcatを埋め込みサーブレットコンテナーとして使用するためのスターター。使用するデフォルトのサーブレットコンテナースターターPom(GitHub)spring-boot-starter-undertowUndertowを埋め込みサーブレットコンテナーとして使用するためのスターター。Bootは、動作するために特定のコードレイアウトを必要としません。役立つベストプラクティスがいくつかあります。宣言が含まれていない場合、そのクラスは「デフォルトパッケージ」にあると見なされます。通常、「デフォルトパッケージ」の使用は推奨されておらず、避ける必要があります。Bootアプリケーションで特定の問題を引き起こす可能性があります。Javaの推奨パッケージ命名規則に従い、逆ドメイン名(たとえば、com.example.project)を使用することをお勧めします。通常、メインアプリケーションクラスを他のクラスの上にあるルートパッケージに配置することをお勧めします。アノテーションは多くの場合メインクラスに配置され、特定のアイテムのベース「検索パッケージ」を暗黙的に定義します。アイテムを検索します。ルートパッケージを使用すると、コンポーネントスキャンをプロジェクトにのみ適用することもできます。アノテーションはその動作を定義するため、代わりに使用することもできます。次のリストは、典型的なレイアウトを示しています。メソッドを宣言します。BootはJavaベースの構成を優先します。クラスにすることをお勧めします。@Configurationとして適切な候補です。XML構成を使用する多くのSpring構成例がインターネットで公開されています。可能であれば、常に同等のJavaベースの構成を使用してください。アノテーションを検索することは、出発点として適切です。単一のクラスに入れる必要はありません。アノテーションを使用して、追加の構成クラスをインポートできます。クラスを含むすべてのSpringコンポーネントを自動的に取得できます。クラスから開始することをお勧めします。アノテーションを使用してXML構成ファイルをロードできます。Boot自動構成は、追加したjar依存関係に基づいて、Springアプリケーションを自動的に構成しようとします。Bootはメモリ内データベースを自動構成します。クラスの1つに追加して、自動構成をオプトインする必要があります。アノテーションを1つだけ追加してください。クラスのみにいずれかを追加することをお勧めします。自動構成の段階的な置き換え自動構成は非侵襲的です。いつでも、独自の構成を定義して、自動構成の特定の部分を置き換えることができます。Beanを追加すると、デフォルトの組み込みデータベースサポートは元に戻ります。スイッチを使用してアプリケーションを開始してください。これにより、選択したコアロガーのデバッグログが有効になり、コンソールに状態レポートが記録されます。exclude属性を使用して無効にすることができます。属性を使用して、代わりに完全修飾名を指定できます。プロパティを使用して、除外する自動構成クラスのリストを制御することもできます。アノテーションレベルとプロパティの使用の両方で除外を定義できます。publicですが、パブリックAPIと見なされるクラスの唯一の側面は、自動構成を無効にするために使用できるクラスの名前です。ネストされた構成クラスやBeanメソッドなど、これらのクラスの実際の内容は内部使用専用であり、直接使用することはお勧めしません。Framework技法を自由に使用できます。使用して(コンストラクター注入を行う)がうまく機能することがよくあります。Beanとして自動的に登録されます。Beanを示しています。...}Beanに1つのコンストラクターがある場合、次の例に示すように、@Autowiredを省略できます。finalとしてマークされ、その後変更できないことを示すことに注意してください。Boot開発者は、自動構成、コンポーネントスキャンを使用し、「アプリケーションクラス」で追加の構成を定義できるアプリを好みます。アノテーションを使用して、これらの3つの機能を有効にできます。コンテキストに追加のBeanを登録したり、追加の構成クラスをインポートしたりできます。@ComponentScanの属性をカスタマイズするエイリアスも提供します。これらの機能はいずれも必須ではなく、この単一のアノテーションを有効にする機能のいずれかに置き換えることもできます。アプリケーションでコンポーネントスキャンまたは構成プロパティスキャンを使用したくない場合があります。@Importを参照)。アプリケーションを実行するアプリケーションをjarとしてパッケージ化し、組み込みHTTPサーバーを使用する最大の利点の1つは、他のアプリケーションと同じようにアプリケーションを実行できることです。Bootアプリケーションのデバッグも簡単です。特別なIDEプラグインまたは拡張機能は必要ありません。このセクションでは、jarベースのパッケージングのみを扱います。アプリケーションをwarファイルとしてパッケージ化することを選択した場合は、サーバーとIDEのドキュメントを参照する必要があります。Bootアプリケーションを単純なJavaアプリケーションとして実行できます。最初にプロジェクトをインポートする必要があります。インポート手順は、IDEとビルドシステムによって異なります。ほとんどのIDEはMavenプロジェクトを直接インポートできます。プロジェクトをIDEに直接インポートできない場合は、ビルドプラグインを使用してIDEメタデータを生成できる場合があります。プラグインが含まれています。プラグインを提供します。use」エラーが表示されます。ボタンを使用して、既存のインスタンスを確実に閉じることができます。-jarを使用してアプリケーションを実行できます。target/myapplication-0.0.1-SNAPSHOT.jarリモートデバッグサポートを有効にしてパッケージ化されたアプリケーションを実行することもできます。これにより、次の例に示すように、パッケージ化されたアプリケーションにデバッガーを接続できます。ゴールが含まれています。IDEの場合と同様に、アプリケーションは展開された形式で実行されます。Bootアプリケーションを実行する典型的なMavenコマンドを示しています。オペレーティングシステム環境変数を使用することもできます。タスクも含まれています。プラグインを適用するたびに追加され、次の例に示されています。オペレーティングシステム環境変数を使用することもできます。Bootアプリケーションは単なるJavaアプリケーションであるため、JVMホットスワップはそのまま使用できます。JVMのホットスワップは、置き換えることができるバイトコードによって多少制限されています。モジュールには、アプリケーションの迅速な再起動のサポートも含まれています。詳細については、この章で後述する開発ツールセクションおよびホットスワップ「使い方」を参照してください。Bootには、アプリケーション開発エクスペリエンスをもう少し快適にすることができる追加のツールセットが含まれています。モジュールを任意のプロジェクトに含めて、追加の開発時機能を提供できます。devtoolsサポートを含めるには、MavenおよびGradleの次のリストに示すように、ビルドにモジュール依存関係を追加します。developmentOnly("org.springframework.boot:spring-boot-devtools")}完全にパッケージ化されたアプリケーションを実行すると、開発者ツールは自動的に無効になります。起動された場合、または特別なクラスローダーから起動された場合、「本番アプリケーション」と見なされます。システムプロパティを設定することを検討してください。構成を使用する(上記を参照)ことは、プロジェクトを使用する他のモジュールに開発ツールが一時的に適用されるのを防ぐベストプラクティスです。再パッケージ化されたアーカイブには、デフォルトではdevtoolsが含まれていません。ビルドプロパティを無効にしてそれを含める必要があります。このプロパティは、MavenおよびGradleプラグインの両方でサポートされています。Bootがサポートするライブラリのいくつかは、キャッシュを使用してパフォーマンスを向上させます。テンプレートエンジンはコンパイル済みテンプレートをキャッシュして、テンプレートファイルの繰り返し解析を回避します。MVCは、静的リソースを提供するときに、HTTPキャッシュヘッダーを応答に追加できます。キャッシングは本番環境では非常に有益ですが、開発中は逆効果となり、アプリケーションで行った変更を確認できなくなります。このため、spring-boot-devtoolsはデフォルトでキャッシュオプションを無効にします。ファイルの設定によって構成されます。プロパティを提供します。モジュールは、これらのプロパティを手動で設定する必要があるのではなく、適切な開発時構成を自動的に適用します。ロギングを有効にします。これにより、受信要求、処理しているハンドラー、応答結果などに関する情報が得られます。構成プロパティをオンにできます。