DIコンテナアノテーション「injectTo」

SpringのBean定義を見ると、RMIやらトランザクションの定義のときに、当該Beanを親Beanにインジェクションして使う必要があるものがある。
そのときこんな感じがいいのかな。

@Spring(parent="daoBase",
  injectTo=@Spring(parent="transaction"), 
  injectProperty="target")
class SeikyuDao extends HibernateSupport;

EJB3互換のDIコンテナ用アノテーションを考える

DIコンテナのアノテーションEJB3互換にできるようにすると、面白いことになることに気付きました。


前に書いた

Springの定義継承をうまく使うと、オブジェクトがどのグループに属するかという表現にもなります。例えば納品を扱う画面オブジェクト群・請求を扱う画面オブジェクト群がそれぞれ納品画面共通定義・製品画面共通定義を継承することになったりしますから。より静的保証するためにはインターフェイスとの併用が効きますね。

という話。
例えば



という定義をしておいて

@Spring(parent="納品")
class NohinListAction extends Action;

@Spring(parent="納品")
class NohinDao extends Dao;

@Spring(parent="請求")
class SeikyuListAction extends Action;

@Spring(parent="請求")
class SeikyuDao extends Dao;

という感じになります。
パッケージでの分類みたいなものにも見えますが、パッケージでの分類というのは、単に作業をやりやすくするための分類なので、あまり論理的な意味がもたせられないんです。アクセス制御のからみもあるので、どっちかというとクラスの分類を補足するための機能ですね。
で、こうしてみると、うまく縦軸と横軸のマトリックス構造を表現できていることがわかります。
この縦軸と横軸のイメージが性質の軸がクラスなら、所属の軸はなんになるの?のときに考えていた軸です。
このイメージを実現するために、Web+DB PRESS Vol.26の記事でわざわざXDT書いてまでparent属性をもってきたわけです。


で、本題のEJB3互換のアノテーションですよ。
EJB3アノテーションに@Statelessとか@Statefulとかあるわけですが、これを内部的に@Spring(parent="Stateless")や@Spring(parent="Stateful")と変換するわけです。
実際には、もうちょっと賢くやるんだけども。トランザクションを実現するためのtargetが指定できるようにするとか。
で、それぞれのBeanを定義しておく。



そうするとですね、ステートレスビーンやらステートフルビーンの動作がカスタマイズ可能なEJB3コンテナになるってわけなんですよ o(≧▽≦)ノ彡☆ドンドン
ステキス━━ヽ(゜∀゜)ノ━( ゜∀)ノ━(  ゜)ノ━ヽ(  )ノ━ヽ(゜  )━ヽ(∀゜ )ノ━ヽ(゜∀゜)ノ━━!!!




(´・ω・`)_日~~ オチツケ

やりなおしの案件

80%作ったStep1を全部却下され、0からやりなおしで100%まで作ったStep2が闇に葬られ、Step3の実装が来週から始まります。
こんどはまともなヒアリング結果と、全部好きにやっていいというお墨付きをいただいたので、かなり楽。
「こうすると便利」とか「これだとうまくいかない」と思ったら、好きにやって構わないと。
で、0から考え直すのですが、アプリケーション的な部分はいいとして、実装。
もちろん無設定Struts使います。便利な割に害もないし。
そして無定義Hibernate、使いません(^^;
これはビックリライブラリで、実用的ではありません。普通にソースコード生成します。Hibernate Annotations使うので、定義ファイルは作らないし。
で、Springアノテーション、作ります。
XDocletを排除したいんですね。がんばろっと。

Comic Baton

わけわからん人からトラックバックとセットでComic Batonが周ってきてよろしくされた(´д`;;)
しかも、忙しくても折れない。
まだ書いてないMusical Baton書いた暁には、お返しするので乞うご期待。

Total volume of comic on my Bookshelf(本棚に入ってる漫画単行本の冊数)

1冊もない。

Comic thought to be interesting now(今面白い漫画

でろでろ(4) (KCデラックス ヤングマガジン)

でろでろ(4) (KCデラックス ヤングマガジン)

ヤングマガジン連載。今週号の白線妖怪とか、心の中にある妖怪を描き出されてツボにはまること多数。

ゴッドハンド輝(23) (講談社コミックス)

ゴッドハンド輝(23) (講談社コミックス)

少年マガジンのマンガは、特別な能力のある主人公がちゃんと努力して成長していくので、特別な能力のある主人公が思いつきと強力アイテムと他力本願で勝ち進んでいく少年ジャンプのマンガに比べて好きだ。

The last comic I bought (最後に買った漫画)

ぼのぼの (17) (Bamboo comics)

ぼのぼの (17) (Bamboo comics)

このあたりかもしれない。別に集めてたわけでもなく、なんか当時あたらしめのやつを唐突に買った。
5巻くらいまでは面白かったけど。しまっちゃうおじさんとか。

Five comic I read to a lot, or that mean a lot to me (よく読む、または特別な思い入れのある5つの漫画)

ダービージョッキー (22)

ダービージョッキー (22)

武豊監修の騎手マンガ。天才ってこんな感じで悩むんだなぁと思った。

Five people to whom I'm passing the baton (バトンを渡す5名)

とりあえず、まだ書いてないMusical batonのお返しにid:m-hashimotoさんへ。