Spring BootはSpring Frameworkの集合体となった機能を使いやすくするためのものとして誕生したWebアプリケーションフレームワークです。数あるJavaフレームワークの中でも多大な人気を集めております。この記事ではSpring Bootを理解するために初心者でも分かる特徴、アノテーション、基礎知識などを簡単に解説していきます。
Spring BootとはJavaで活用されるWebアプリ開発を迅速かつ効率的にする仕組みを備えたフレームワークです。ベースとなるSpring Frameworkの集合体となった機能を使いやすくするためのものとして誕生しました。Spring Bootの特徴は『XML設定ファイルが不要』 『Webコンテナをjarファイルに含められる』 『STSと相性が良い』などが挙げられます。
SpringとはJavaに活用されるロッド・ジョンソン(Rod Johnson)氏によって開発されたオープンソースアプリケーションフレームワークです。Javaにおけるフレームワークの中でも長い歴史を持ち、世界中のシステム開発に利用されております。Springの特徴は様々なプロジェクトと呼ばれるライブラリの集合体で形成されており、開発者が用途に合わせて必要なライブラリを活用するという特徴があります。そのため非常に柔軟性が高いフレームワークとして親しまれております。
JavaとはOracle社が開発・提供するオブジェクト指向のプログラミング言語です。1995年にサン・マイクロシステムズ(後にOracle社が買収)のジェームス・ゴブリン氏によって開発されリリースとなりました。プログラミング言語の発展に大きな影響をもたらしたC言語を元に開発されたことでも有名です。当時、最も人気を集めていたC言語はオブジェクト指向ではありませんでした。
Javaの登場によってオブジェクト指向が主流の時代が訪れたと言われております。Javaのキャッチコピーは「Write once, run anywhere」で直訳すると「一度書けば、どこでも実行できる」という意味があります。このことからも分かるようにJavaの特徴は『オブジェクト指向の先駆者』で『どこでも動く』ということらが挙げられます。世界中で最もポピュラーで多くのWebアプリケーションで採用されていることで知られております。
Spring Bootの特徴を見ていきましょう。
Spring BootはXML設定ファイルが不要という特徴があります。Spring FrameworkではXML形式の設定ファイルを定義することによって設定を外部化することができます。これには設定の煩雑さに悩まれることが多くありました。そこでSpring Bootではこの煩雑さを排除し、基本的な設定をほとんど自動化しているため必要最低限の設定でアプリケーションの起動・実行を行うことを実現しました。
Spring BootはWebコンテナをjarファイルに含められるという特徴があります。サーバー側にWebコンテナをセットアップする必要がなく、jarファイル単体でWebアプリの開発が可能です。
Spring BootはSTS(Spring Tool Suite)と相性が良いという特徴があります。STSはEclipseベースのSpring Frameworkに適した機能が備えられている開発環境です。STSを利用することでコードの作成のみに集中して開発を効率良く進めることができます。
Spring Bootの基本的なアノテーションは以下の通りです。
アノテーション | 概要 |
@Async | メソッドに付与して非同期実行する |
@Autowired | 特定のアノテーションを付与したクラスのインスタンスを使用できるようにする |
@Bean | DIコンテナに管理させたい「Bean」を生成するメソッドに付与する |
@ComponentScan | DIコンテナが管理する「Bean」を自動登録する |
@Configuration | Javaコード上で様々なSpringの設定を使用する |
@Controller | 画面遷移用のコントローラーに付与する |
@Data | コンパイル時に[setter()メソッド][getter()メソッド]などのメソッドが生成する |
@EnableAutoConfiguration | Springの設定を自動化する |
@RestController | Webアプリケーションにおいてリクエストを受け付ける「コントローラークラス」に付与する |
@Scheduled | タスクを指定した間隔でスケジュール実行する |
@Transactional | データベースのトランザクション制御する |
Spring Boot以外のJavaによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
StrutsとはJavaに活用されるクレイグ・マクラナハン (Craig McClanahan)氏によって開発されたオープンソースアプリケーションフレームワークです。Javaにおけるフレームワークの中で最も知名度が高いのではないでしょうか。StrutsはMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴は画面とデータベースの開発を分離し、モジュール単位での開発を実現させたことにあります。主なStritsの種類(バージョン)としてStruts、Struts2が挙げられます。
JSF(Java Server Faces)とは、Javaに活用されるOracle社によって開発されたWebアプリケーションフレームワークです。Strutsと同様にMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴はWebアプリケーションのユーザインターフェースの作成のために活用され、コンポーネントベースで開発するものとなっております。JSFの仕様はJavaEE(Java Platform, Enterprise Edition)の一部として取り込まれています。
SparkFrameworkとはJavaに活用されるマテイ・ザハリア(Matei Zaharia)氏によって開発されたオープンソースアプリケーションフレームワークです。2014年5月にリリースされて、後にApacheソフトウェア財団に寄付されました。Sparkの特徴は非常にシンプルな仕組みとなっており、Lambda式とstaticメソッドを活用し手軽に実装することが出来るということが挙げられます。またRubyのSinatraフレームワークにインスパイアされて誕生したと言われております。
Spark Frameworkの公式サイトはこちら>>
SparkFrameworkの歴史や特徴、基礎知識について解説された記事はこちら>>
Spring Bootを理解するために初心者でも分かる特徴、アノテーション、基礎知識などを簡単に解説させていただきました。Spring Bootを一言で表すと『Spring Frameworkの集合体となった機能を使いやすくするためのものとして誕生したWebアプリケーションフレームワーク』です。特徴として『XML設定ファイルが不要』 『Webコンテナをjarファイルに含められる』 『STSと相性が良い』などが挙げられます。Spring Bootについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。