javaで開発するときに使ったフレームワークはstrutsと富士通のinterstage(java ee)しかない。
springについてはEJBの軽量化バージョンということで少し触れた程度。
最近springについてググってみたらspring rooとかbootなど知らないものが出ってきたので調べてみた。
序でに近頃使われているJAVA系のフレームワークの傾向についても整理した。
frameworkとは
一般的な機能をもつ共通コードをユーザーが選択的に上書きしたり特化させたりすることで、ある特定の機能をもたせようとする抽象概念のことである。(wikipediaより)
パッとこない人のために補足する。
近頃のWebアプリケーションはmvcアーキテクチャーを採用して作られている。
mvcとはソフトウェアのデザインパターンの一つでこれを採用してWebアプリケーションを作るとビジネスロジックとプレゼンテーションが分離されて全体的な開発コストが下がるようになる。
しかし、mvcアーキテクチャーは最初から作ろうとすると骨を折る作業になってしまう。
そこでどこかで心優しいエンジニアさんがmvcアーキテクチャーである程度作られているもの(フレームワーク)を公開してくれた。
ある程度作られているものだからそれに合わせて必要な機能の実装に力を入れれば終わりというわけよ。
心優しいエンジニアさんが大勢いたので、世の中には多数のフレームワークが存在する。
多数のフレームワークの中でも人気を集めているものがあるので、できればそれを使った方がいいと思う。
次はjava言語で作られたフレームワークのトレンドである。
最近はspring bootの検索頻度が増えている。
Indeedのジョブトレンドで企業で求めているスキルが何なのか見るとspring frameworkが一番多くてspring bootが徐々に増えている。
spring bootはruby on railsの影響を受けてspring frameworkをより簡単に使うためのもので新しいフレームワークではない。
spring framework
- DI(Dependency Injection、依存性注入)をベースにしたフレームワーク
- spring frameworkを土台として多数のフレームワークが用意されている。spring mvcもその中の一つ
spring mvc
- MVCアーキテクチャーによる開発を可能にするフレームワーク
- 基本的にはspring framework + spring mvcの構成でWebアプリケーションを作るがspring framework + apache strutsの構成で作る場合もある。
spring roo
- ruby on railsのgeneratorのように枠組みを自動生成してくれるツール
spring boot
- ビルドツールの設定ファイルを記述し、専用のコマンドを実行することにより最適化されたWEBアプリケーション環境を構築
- spring mvc + spring boot = railsライクなフレームワーク
- Groovy(JVM上で動作するスクリプト言語)とjavaによるアプリケーション開発をサポートする。
次回
- springの開発ツールとしてeclipseを設置
- spring legacy project(旧spring framework)の生成
- spring starter project(spring boot)の生成