Spring Boot 概要

Spring Boot とは

  • Spring プロジェクトが提供するさまざまなライブラリとフレームワークを素早く利用できるようにするフレームワークである。
  • Dropwizard の Spring 版のようなものである。
  • ビルドすると単一の jar ファイルが作成される。
    • Web アプリケーションの場合、組み込み Tomcat を起動する(Jetty や Undertow に切り替え可能)。
    • Web アプリケーションではなく、通常の Java プログラムとしても動作させることができる。
  • Maven や Gradle などのビルドツールを使用する。(Ant では不可)
  • 使用したいコンポーネントを依存関係として追加すると、統合に必要な設定が自動的に行われる。
  • Spring アプリケーションを独立して作成、ビルド、実行でき、Embedded Tomcat、Jetty を使用できるため、WAR ファイルにまとめてデプロイする必要がない。
  • Tomcat や Jetty が組み込まれており、プロジェクトを .jar ファイル形式で簡単にデプロイできる。
  • 複雑な XML 設定を簡素化し、アノテーションベースの Java config に置き換えることで、サーバー設定を容易にできる。
  • Django や Ruby on Rails のように、Web プロジェクトを素早く作成できる。

Spring Boot の自動設定

  • @SpringBootApplication
    • @Configuration@EnableAutoConfiguration@ComponentScan をデフォルトで一緒に使用するという意味である。
  • @Configuration
    • クラスの上に宣言する。
    • クラス内に 1 つ以上の @Bean メソッドを提供し、Spring コンテナが該当 Bean を生成、管理できるようにする。
  • @EnableAutoConfiguration
    • embedded Tomcat サーバー設定、Spring MVC の DispatcherServlet 自動登録など、さまざまな基本設定作業を行う。
  • @ComponentScan
    • @Component@Service@Repository@Controller が付与された class を自動で scan し、Bean として登録する。