Fresopiya
場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。

まずはとにかく自由を目指すエンジニアのブログです。
「哲学」と「プログラミング」と「政治経済」、「ブログ」がメインになるかと。
Java

【Java】Javaのフレームワーク「Spring Framework」と「Spring Boot」とは?

どうも、とがみんです。

Javaでアプリケーションを開発する際に、フレームワークの選定を行うとおもいます。

この記事では、Javaのオープンソースアプリケーションフレームワークである、「Spring」とは何か、また「Spring Boot」とは何かについて簡単にまとめていきます。

「Spring Framework」とは?

「Spring Framework」とは、Javaの「様々な多数のフレームワーク共同体」のことをいい、「Spring」ともいわれています。

「Spring」に含まれるフレームワークは「DI(Dependency Injection:依存性注入)」、「AOP(Aspect Oriented Programming:アスペクト指向プログラミング)」といった技術をベースに様々なフレームワークが用意されています。

>Springフレームワークの設計思想とAOP


フレームワーク:特定の領域の問題を解決するための基盤を提供するもの

「Spring」は「DI(Dependency Injection:依存性注入)」、「AOP(Aspect Oriented Programming:アスペクト指向プログラミング)」を提供するフレームワークとして始まりましたが、時が経つにつれて、たくさんのフレームワークが開発されていきました。

例えば以下のようなものです。他にもたくさんあります。

  • アスペクト指向プログラミングフレームワーク
  • データアクセスフレームワーク
  • トランザクション管理フレームワーク
  • Model-View-Controller フレームワーク
  • リモートアクセスフレームワーク
  • バッチ処理フレームワーク

>Main Projects|spring
>Spring Framework|Wikipedia

このように、あまりにも多くのフレームワークが開発され設定等が複雑になっていきました。

そのため、それらフレームワークの設定を簡単に行えるようにするために、「Spring Boot」というフレームワークが開発されました。

「Spring Boot」とは?

「Spring Boot」とは、Javaの「Spring」のフレームワークの一つで、「Spring」のあらゆるフレームワークを統合し、実務に耐えうるレベルのアプリケーションをとにかく短い工程で短期間にアプリケーションを構築するためのフレームワークです。


「Spring Boot」は、いかに簡単にアプリケーションを作るかを考えて設計されており、これを使用することにより、開発者は他のフレームワークを意識して管理する必要がありません。

以下の図のように、アプリケーションを作成する際は、Spring Bootを通して、様々なフレームワークの機能を扱います。

アノテーションという機能を利用することによって、あらゆる設定を自動で行ってくれ、簡単に機能を実装することができ、コーディングの量を大幅に削減することができます。

その反面、あらゆる設定や処理を自動でおこなってくれるために、内部でどんな処理が行われているのかといったことがわかりにくいといったデメリットもあります。

まとめ

Javaのフレームワーク「Spring Framework」と「Spring Boot」について簡単にまとめました。

今後、SpringBootを使用したアプリケーションの開発もまとめていきます。

参考文献

>多様化するJavaのフレームワーク問題を解決する、「Spring Boot」とは?

※SpringフレームワークのDIやAOPについて詳しく書かれていますが、初心者には難し目です。

※Spring Bootに関してはこの本。