#プログラミング勉強日記
2020年12月3日
今日初めてSpring Bootを使って簡単にアプリを作ることができたので驚いた。なので、Spring Bootとはなにかまとめようと思う。
#Spring Bootについて
Spring Bootの紹介をする前に、まずSpring Frameworkについて触れる。
##Spring Frameworkとは
Spring Frameworkは2004年にリリースされたオープンソースのフレームワークで、依存性注入(DI)や、アスペクト指向プログラミング(AOP)などシステム開発やプログラムの修正がしやすいような仕組みになっている。他のフレームワークと比較しても、Spring Frameworkは汎用性が高く、WebシステムやWebサービス以外にもクラウドやモバイルシステムの開発にも適している。
Spring Frameworkはフレームワークの集合体で、機能に応じて多数のフレームワークで構成されている。これによって、幅広い開発ができるが、機能の使い分けが難しいというデメリットもあった。
##Spring Bootとは
Javaで行うWebアプリ開発を迅速かつ効率的にする仕組みを備えたフレームワークのこと。Spring Frameworkの機能の使い分けが難しいというデメリットを解決するために作られたフレームワーク。Spring BootもSpring Frameworkをベースとするフレームワークの1つである。
主な機能としては、複数のフレームワークを使用するときに発生するBean定義やXML設定を可能な限り自動設定する機能がある。他にも、コードを書かなくてもプログラムの処理ができるようにJavadocと同様にアノテーションが記述できる。Spring Bootは、Spring MVCと呼ばれる別のフレームワークの仕様を引き継いでいるので、Spring Frameworkを構成するフレームワークの1つとして組み込まれている。
##Spring FrameworkとSpring Bootの違い
- Spring FrameworkはJavaのアプリ開発のために作られたフレームワークの集合体
- Spring Bootは集合体となった機能をつきやすくするためにフレームワーク
#Spring Bootの特徴(メリット)
- XML設定ファイルが不要
- jarファイルにWebコンテナを含められる
- コーディングする量が減る
- 依存性注入(DI)がベースにある
- STSとの相性が良い
- カスタマイズができる
##XML設定ファイルが不要
Spring Bootでは複雑であったXML設定ファイルをなくして、基本的な設定を自動化している。
一般的にはXMLファイルに記述する設定作業は、複雑なことをしようとするほどXMLも複雑になり、エラー特定が難しくなる。そこで、Spring Bootは必要最小限の設定のみでWebアプリを実行することができる。
##jarファイルにWebコンテナを含められる
サーバー側にWebコンテナをセットアップすることなく、jarファイル単体でWebアプリの開発できる。
##コーディングする量が減る
アノテーションを記述することで機能を実装できるので、短いコードで実装することができる。
##依存性注入(DI)がベースにある
DIとは、クラス間にある依存関係をコードに記述するのではなく、実行時に外部から引数で呼び出すことができる手法。DIがあることで、クラスの仕様を変更しても既存のコードに影響を与えないことができ、単体のテストにおいてテスト用のクラスを作成することができる。
##STSとの相性が良い
STSはSpring Tool Suiteの略で、EclipseをベースにSpring Frameworkでの開発に適した機能が備えられている開発環境のこと。STSを利用することで、コードの作成だけに集中して開発を進められる。
##カスタマイズができる
初期段階で設定されてるものを変えることで、目的や好みに合わせて変更することができる。
#参考文献
Spring bootとは?Spring frameworkとの違いは?
Spring Bootとは?Spring Bootの基礎や使い方を初心者向けに解説!チュートリアルやおすすめの本も紹介
Spring Bootのメリット6つ|使い方や開発事例を解説!