こんにちは。たいら(@tairaengineer2)です。
この記事でJavaのフレームワークであるSeasar2についてざっくりとした概要を書いた記事です。
スポンサーリンク
Seasar2の歴史
こちらがSeasar2公式サイトのリンクになります。
2003年8月公開された純国産のJavaフレームワークです。
公開された当初は「Seasar」と呼ばれてました。
2004年3月に再公開され、今の「Seasar2」という名前になりました。
ちなみに「Seasar」って名前の由来ですが、中心となって開発した比嘉康雄さんが沖縄出身でした。
なので、沖縄の象徴である「シーサー」からとったものだそうです。
シーサーは災いをもたらす悪霊を追い払う魔除けとして、沖縄で大切にされてるそうです。
なのでそういう願いをこめて名付けたかもしれませんね。
そんなSeasar2ですが、2016年9月26日 をもって EOL (End of Life) となりました。。。
EOL 【 End Of Life 】
EOLとは、「寿命の終わり」「(難病治療における)終末期」などの意味の英略語および英語表現。
IT業界では製品の生産終了や販売終了、ソフトウェア製品などのサポート終了、修正・更新プログラムの提供終了などの意味で用いられることが多い。
EOL(End Of Life)とは - IT用語辞典 e-Wordsから引用させて頂きました
比嘉さんのブログに開発停止の理由が書かれていますので是非ご覧ください。
Seasar2の特徴
Seasar2の特徴は2つあります。
- DI(Dependecy Injection:依存性の注入)
- AOP(Aspect-Oriented Programming:アスペクト指向プログラミング)
です。
DIとは
DI 【 Dependency Injection 】 依存性注入
DIとは、オブジェクト間で依存性のあるコードを実行時に注入するという設計思想。
DI(依存性注入)とは - IT用語辞典から引用させて頂きました
クラスには、定数だったり、メソッド、何かのインスタンスなどが必要です。
そのインスタンスがすでに出来上がっていないと、クラスが正しく動くどころかコンパイルできないような状態のことを依存していると言います。
そのクラスに必要な情報をクラス内で生成して持つのではなく、アノテーションやxmlファイルなどを使って外から設定することが注入と言います。
外部で設定しているので、柔軟に変更できるのが強みです。
AOPとは
AOP 【 Aspect Oriented Programming 】 アスペクト指向プログラミング
AOPとは、ソフトウェアの特定の振る舞いを「アスペクト」として分離し、モジュール化するプログラミング技法。オブジェクト指向プログラミングの問題点を補うために考え出された手法。
AOP(アスペクト指向プログラミング)とは - IT用語辞典から引用させて頂きました
そもそも「Aspect」とは様子、状況、〔ある方向に面した〕面という意味です。
なので、オブジェクト指向では考えないような面を考えましょう、ということです。
どういうことを考えていくかと言いますと、ログ出力などの共通処理です。
Javaは多重継承が許されていません。
共通できる処理でも個々のクラスに書かなければならない場合があります。
そのような場合に、共通メソッドをアノテーションで注入していくのが、AOP(Aspect-Oriented Programming:アスペクト指向プログラミング)です。
スポンサーリンク
まとめ
以上がJavaのフレームワークSeasar2のざっくりとした概要です。
少しでもご参考になれば幸いです。
Seasar2で使用しているアノテーションをまとめました。
良ければ、ご参考ください。
【Java】Seasar2のエンティティアノテーションまとめ
【Java】Seasar2のアクションフォームアノテーションのまとめ
参考にさせて頂いたサイト様
企業システムの常識をJBossで身につける(3):DI(依存性の注入)×AOP(アスペクト指向)の常識 (1/4) - @IT
Spring Frameworkで理解するDI(1):DI:依存性の注入とは何か? (1/3) - @IT
ざっくりとSpringで使うAOPの解釈をする - Qiita