今日からSeasar2の勉強をはじめます。

勉強する理由


・4月から担当になるプロジェクトもJavaになりそう。


・DIとAOP
→理屈はわかってるので。実感してみたい。


XML地獄からの解放
→今はモロ地獄に落ちています。


・日本語の使えるコミッタやユーザがネット上にいる
→結構気が小さいもので。


・新しいことやりたい
→実はこれが一番大きいかなぁ。


ただ、導入するにあたっていろんな人を説得する局面もあるだろうし。
生産性と品質は外せないファクター。


それが立証できれば良いのかなと。


っていうか、まずは自分が触ってみて、
どんなもんか理解しないと、、ということで。



で、何からはじめようかと。


まずは、本家のSeasar2のコンテナのセットアップページ
http://s2container.seasar.org/ja/setup.html


ダダダっと使用するライブラリが列挙。
知らないライブラリが出てくるとビビってしまいます。
いつどこで、どんなことがあるかわからないですし。


① aopalliance-1.0.jar

とりあえす、それぞれが何をするものなのかだけ簡単に。
aopalliance でググってみると↓の@ITの記事がみつかる。
http://www.atmarkit.co.jp/fjava/rensai3/springdi03/springdi03_1.html

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

↑みたいなクラスがあるようだ。
Interceptorってサッカーでパスをカットするようなイメージ。
Invocationって実行とか呼び出しっていう感じでしょうか。
で、ソースコード読むと、

public class MyMethodIntercepter implements MethodInterceptor{
  public Object invoke(MethodInvocation invocation) throws Throwable {
    System.out.println("メソッド実行前");
    Object result = invocation.proceed();
    System.out.println("メソッド実行後");
    return result;
  }
}

invocation.proceed の前後に割り込んでいる感があります。
で、こいつがどうやって呼ばれてるかというと…XML。。。
クラスにidつけて、そいつがどういう風に動くか定義してあるんだけど、
あー、そんな風に動くのねっ、、て、そういう勉強が本質ではないので、
次に進みます。
ま、AOPなんでしょう。aopalliance。


② commons-logging-1.1.jar
こいつは知ってるし、今の使ってるので飛ばします。


javassist-3.3.ga.jar
なんだちみは?ってことで、ググります。
↓なにやら本家的なサイトがひっかかりました。
http://www.csg.is.titech.ac.jp/~chiba/notes/javapress03/index.html
Java バイトコードを操作するクラスライブラリらしい。
バイトコードって聞くだけでなにやらオタッキーなカホリがしてきますが、
読んでくとなにやら便利そうです。あんまり深くつっこむのはやめておきます。


④ ognl-2.6.7.jar
コレみたことあります。使ったことないですが。
なんか直感的に文字の並びが、 おにぎり みたいな気がして個人的に
グッときます。(そんな話はほんとにどうでもいいですが…)
式言語なんですね。タグライブラリと組み合わせて、ちょちょっといい感じに
できるんでしょうか。


⑤ s2-framework-2.x.x.jar
コレは、まぁ。なんていうか。


geronimo-j2ee_1.4_spec-1.0.jar
ジェロニモ。アパッチのおたけび!!
いつぞやかのITアーキテクトサミットかデブサミ
講演を聞いて、グッときたプロダクト。
でも、S2JTA,S2Txを使う場合とか、S2Tigerを使う場合とか
よくわからないですが、どんな使い方するのかよくわからないので
飛ばします。


portlet-api-1.0.jar
ググってみると↓のサイトがみつかりました。
http://journal.mycom.co.jp/news/2005/10/20/033.html

PortletServletのようなものだが、いくつかの点でServletとは根本的に異なっている。
たとえばServletではリダイレクトやリクエストのフォワーディング、
ストリームへの任意のマークアップの送信ができるが、Portletではできない。
PorletではPortletの仕様にのっとってインフラストラクチャに用意されてる機能のみを使ってのアクセスなどが提供される。
またServletはそれ単体でスタンドアロンアプリケーションとして動作するが、Portletはそういったものではないという。

うーん。よくわかりません。。。


log4j-1.2.13.jar
これは普段使ってます。



で、Seasar2拡張機能(S2JTA, S2DBCP, S2JDBC, S2Unit, S2Tx, S2DataSet)を利用する場合、、
はにゃ?って感じですが、みてみます。


junit-3.8.2.jar
普段使ってます。


② poi-2.5-final-20040804.jar
これはエクセルと連携するときに使うやつっすよね。


③ s2-extension-2.x.x.jar
なんか拡張なんでしょうか。。


geronimo-jta_1.0.1B_spec-1.0.jar
geronimo-ejb_2.1_spec-1.0.jar
ジェロニモねぇ。



で、S2Container用のプラグインKijimunaも是非ご利用ください。
↑こういうのを使いたいんですよね。なんというか。



EJB3アノテーションを使いたい場合は、
→ひとまず使わないかなぁ。。



Tigerアノテーションを使いたい場合は、
→うーん。後から考えます。



そんな感じで、これからいよいよセッティングです。