- 更新日: 2022年06月06日
- 公開日: 2017年02月23日
エンジニア志望者必見のSpring Frameworkとは
Java 学習者や Web アプリ開発者、エンジニア志望者が知っておきたいキーワードに Spring フレームワークがあります。非常に専門性の高いフレームワークですが、はじめての方でも Spring のイメージをつかめるように分かりやすく話を進めていきたいと思います。
エンジニア志望者必見のSpring Frameworkとは
Spring フレームワークとは
Spring は、国内で人気のある Java フレームワークのひとつで、NTT データや東芝をはじめアプリ、ソフトウェア開発各社が利用しているオープンソース型のフレームワークになります。 Spring さえ使いこなせれば、食いっぱぐれることはない、と言われるほどエンジニア志望の方にとって重要なファクターとなります。
Spring フレームワークの利用事例としては、株などを取引するオンライン・トレード・システムや金融機関の基幹データベース・システム、製造業の生産管理システムなど比較的規模の大きいシステムに利用されています。中にはオンラインショッピングに Spring を導入されているところもあります。
Spring の歴史は長く、2002年に最初の Spring がリリースされてから、現在もオープンソースとして改良が進められています。 Spring がこれほどまで長く人気な理由としては、システムの仕様変更のしやすさやプログラムテストの行いやすさ、拡張性、システムの安定性などが挙げられます。
- 公式ページ https://spring.io/
- 開発用ページ http://projects.spring.io/spring-framework/
- GitHub http://projects.spring.io/spring-framework/
- IDE ダウンロード(STS) https://spring.io/tools/sts/all
Spring でできること
CakePHP や Ruby on Rails などのフレームワークに比べて、Spring はモジュールの使い方次第で幅広いジャンルのアプリケーションやソフトの開発に利用することができます。
詳しくは公式ページに記載されていますが、私達に馴染みのあるモノをいくつかご紹介します。
- I/O プロジェクト
- アプリケーション開発
- Web アプリ開発
- クラウド上のソフト開発
- データベース管理ソフト
- Android 用アプリ開発 など
Spring の中身
[caption id="" align="alignnone" width="720"] img : Spring Tutorials Blog[/caption]
Spring は、Core Container を中心に複数のフレームワークから構成されています。 ここでは Spring の代表的な機能の Inversion of Control コンテナ(DI コンテナ)と AOP フレームワークについてご紹介します。
Inversion of Control コンテナ(DI コンテナ)
[caption id="" align="aligncenter" width="385"] img : ThinkIT[/caption]
Inversion of Control コンテナ(DI コンテナ)は、 依存性の注入 と呼ばれ、オブジェクト同士の依存に関係なく、外部からプログラムを注入し、開発管理できる環境を作り上げます。
このことによってプロジェクトのメンテナンス性や拡張性を高め、開発しやすい環境を作ることができます。
尚、Ruby on Rails などほかのフレームワークで DI コンテナを使おうと思うと別途設定が必要となります。
DI コンテナについてもっと詳しく知りたい方は、@IT さんの記事や慶応義塾大学のレポートが分かりやすいと思います。
AOP フレームワーク
[caption id="" align="alignnone" width="607"] img : Qiita - ざっくりとSpringで使うAOPの解釈をする[/caption]
AOP フレームワークは、アスペクト指向プログラミング・フレームワークの略語で、クラス間を横断できる機能を持たせることができます。プログラムがシンプルになり管理しやすくなるというメリットもあります。
Spring を使った事例
Hello World ではちょっと物足りないので、GitHub で公開されているサンプルを参考にしたいと思います。
動物と飼い主のマッチングサイト https://github.com/spring-projects/spring-petclinic
解説はこちらから確認できます。 https://speakerdeck.com/michaelisvy/spring-petclinic-sample-application
Spring のメリット・デメリット
メリット
- DI コンテナ & AOP フレームワークによるハイレベルな開発環境
- 豊富なモジュール群
- REST フル対応
- Spring 用の IDE (STS)が無料で公開されている
- 大規模データベース NoSQL 対応
デメリット
- フレームワークの規模が大きく、全体を把握するのが難しい
- DI コンテナの正しい使い方が難しい
- 日本語の情報が乏しい
- 高度な Java 知識が必要
- Spring 専用の IDE に慣れるのにも一苦労
Spring の利用方法
- 公式 IDE のインストール/https://spring.io/tools/sts/all
- Eclipse へのインストール/参考
- GitHub から/http://projects.spring.io/spring-framework/
STS は高機能な IDE ですが、使いこなすのに多少時間がかかることと、ポートやサーバーなどの初期設定で戸惑うこともよくあります。
\Webサイト担当者としてのスキルが身に付く/
まとめ
いかがでしたでしょうか? Java 初心者にとっては、少し敷居の高い Spring ですが、チョットずつ触って慣れていきたいですね。
Java はじめてみたいけれどどうしたらいいのかわからない方、一度は挫折したもののまた挑戦したいと思っている方、CodeCamp の Java Web コースをご参照ください。
- この記事を書いた人
- オシママサラ