概要
Seasar2の特徴
###DI(Dependency Injection)とAOP(Aspect Oriented Programming)をサポートした軽量コンテナ
4つの特徴
- 設定ファイルの記述量が少ない
- SMART deploy機能を備えている
- フルスタックフレームワークである
- 技術面以外でのメリット
1. 設定ファイルの記述量が少ない
個人的に使用したフレームワークがFuelしかないので
感想として、記述量が少ないという実感はない。
2. SMART deploy機能を備えている
DIコンテナとしてSearsar2の最大の特徴の1つ。
特にHOT deployモードは、アプリケーションサーバを再起動せずにクラスの修正を反映できる。
※スマートデプロイに関する内容はまとめて記載します。
3. フルスタックフレームワークである
フルスタックが良いのかシングルタスクが良いのかは意見がわかれると思いますが。
各利点を簡単に…
フルスタック⇒機能満載でビジネスロジックに集中して開発ができる
シングルタスク⇒拡張性がある、学習コストが低い
4. 技術面以外でのメリット
日本産のフレームワークである為にググったら日本語での資料が沢山見つかる。
##DIとは
Dependency Injection 日本語で「依存性の注入」
###Q.『依存性の注入』とは何か?
A.「依存していた部分を、外から注入すること」
###Q.『依存性』とは何か?
A.あるクラスに固定の①変数②定数③インスタンスが入っている状態のことで、
そのクラスは変数、定数、インスタンスに依存しているということ。
###Q.『注入』とは何か?
そのクラスの外から変数、定数、インスタンスをクラスに入れること。
###Q.なぜ依存性を注入したいのか?
- 外から動的に動作を変更できないので、テストしづらい
- 決め打ちなので、柔軟性がなくカスタマイズしにくい
###ラーメンで例えてみる
依存性のあるラーメン = カップラーメン
カップヌードルだとすると、お湯を注ぐだけで完成
簡単だがアレンジしにくい。
味は全てカップの中にあるので工夫もしにくい。
カップヌードル(日清)が提供しているものに依存する。
依存性のないラーメン = 袋麺(即席麺)
麺を茹でるのは決まっているが、具材は自分で決められる。
色々麺や具材などでアレンジができる。
ラーメンに具材や調味料を外から注入できる。