Spring-boot-introduction
スプリングブート-はじめに
Spring Bootは、マイクロサービスの作成に使用されるオープンソースのJavaベースのフレームワークです。 Pivotal Teamによって開発され、スタンドアロンおよび生産準備が整ったスプリングアプリケーションの構築に使用されます。 この章では、Spring Bootの概要を説明し、その基本概念を理解します。
マイクロサービスとは何ですか?
マイクロサービスは、開発者がサービスを独自に開発および展開できるようにするアーキテクチャです。 実行中の各サービスには独自のプロセスがあり、これによりビジネスアプリケーションをサポートする軽量モデルが実現されます。
利点
マイクロサービスは、その開発者に次の利点を提供します-
- 簡単な配置
- シンプルなスケーラビリティ
- コンテナとの互換性
- 最小構成
- 生産時間の短縮
Spring Bootとは何ですか?
Spring Bootは、Java開発者が*実行*できるスタンドアロンおよびプロダクショングレードのSpringアプリケーションを開発するための優れたプラットフォームを提供します。 Spring構成全体をセットアップする必要なく、最小限の構成で開始できます。
利点
Spring Bootは、その開発者に次の利点を提供します-
- スプリングアプリケーションの理解と開発が簡単
- 生産性を向上
- 開発時間を短縮
目標
春のブートは、次の目標で設計されています-
- Springでの複雑なXML構成を回避するには
- 生産準備が整ったSpringアプリケーションをより簡単な方法で開発するには
- 開発時間を短縮し、アプリケーションを独立して実行するには
- アプリケーションを使い始める簡単な方法を提供する
なぜSpring Bootなのか?
ここで与えられる機能と利点のために、Spring Bootを選択できます-
- Java Beans、XML構成、およびデータベーストランザクションを構成するための柔軟な方法を提供します。
- 強力なバッチ処理を提供し、RESTエンドポイントを管理します。
- Spring Bootでは、すべてが自動構成されます。手動で構成する必要はありません。
- 注釈ベースのスプリングアプリケーションを提供します
- 依存関係管理を容易にします
- 組み込みサーブレットコンテナが含まれています
それはどのように機能しますか?
Spring Bootは、 @ EnableAutoConfiguration アノテーションを使用して、プロジェクトに追加した依存関係に基づいてアプリケーションを自動的に構成します。 たとえば、MySQLデータベースがクラスパスにあるが、データベース接続を設定していない場合、Spring Bootはインメモリデータベースを自動設定します。
スプリングブートアプリケーションのエントリポイントは、 @ SpringBootApplication アノテーションとmainメソッドを含むクラスです。
Spring Bootは、 @ ComponentScan アノテーションを使用して、プロジェクトに含まれるすべてのコンポーネントを自動的にスキャンします。
スプリングブートスターター
依存関係管理の処理は、大きなプロジェクトにとって難しいタスクです。 Spring Bootは、開発者の利便性のために一連の依存関係を提供することにより、この問題を解決します。
たとえば、データベースアクセスにSpringとJPAを使用する場合は、 spring-boot-starter-data-jpa 依存関係をプロジェクトに含めるだけで十分です。
すべてのSpring Bootスターターは同じ名前付けパターン spring-boot-starter- *に従うことに注意してください。*は、それがアプリケーションのタイプであることを示します。
例
理解を深めるために、以下で説明する次のSpring Bootスターターを見てください-
- Spring Boot Starter Actuator依存性*は、アプリケーションの監視と管理に使用されます。 そのコードは以下に示されています-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- Spring Boot Starter Securityの依存関係*は、Spring Securityに使用されます。 そのコードは以下に示されています-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
- Spring Boot Starter Web依存*は、Rest Endpointsの記述に使用されます。 そのコードは以下に示されています-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- Spring Boot Starter Thyme Leaf依存関係*は、Webアプリケーションの作成に使用されます。 そのコードは以下に示されています-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
- Spring Boot Starter Testの依存関係*は、テストケースの記述に使用されます。 そのコードは以下に示されています-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
自動設定
Spring Boot Auto Configurationは、プロジェクトに追加したJAR依存関係に基づいて、Springアプリケーションを自動的に構成します。 たとえば、MySQLデータベースがクラスパスにあるが、データベース接続を設定していない場合、Spring Bootはインメモリデータベースを自動設定します。
この目的のために、メインクラスファイルに @ EnableAutoConfiguration アノテーションまたは @ SpringBootApplication アノテーションを追加する必要があります。 その後、Spring Bootアプリケーションが自動的に構成されます。
より良い理解のために次のコードを観察します-
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@EnableAutoConfiguration
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
スプリングブートアプリケーション
Spring Bootアプリケーションのエントリポイントは、 @ SpringBootApplication アノテーションを含むクラスです。 このクラスには、Spring Bootアプリケーションを実行するためのmainメソッドが必要です。 @ SpringBootApplication 注釈には、自動構成、コンポーネントスキャン、およびスプリングブート構成が含まれます。
*@ SpringBootApplication* 注釈をクラスに追加した場合、 *@ EnableAutoConfiguration、@ ComponentScan* 、および *@ SpringBootConfiguration* 注釈を追加する必要はありません。 *@ SpringBootApplication* 注釈には、他のすべての注釈が含まれます。
より良い理解のために次のコードを観察します-
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
コンポーネントスキャン
Spring Bootアプリケーションは、アプリケーションの初期化時にすべてのBeanとパッケージ宣言をスキャンします。 プロジェクトに追加されたコンポーネントをスキャンするには、クラスファイルに @ ComponentScan 注釈を追加する必要があります。
より良い理解のために次のコードを観察します-
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}