Hatena::ブログ(Diary)

出羽ブログ RSSフィード

Seasar Conference 2008 Autumn - 9/6(SAT), Tokyo

2008-06-05

SAStruts + S2JDBCのアーキテクチャを図示してみる

| 23:21 | SAStruts + S2JDBCのアーキテクチャを図示してみるを含むブックマーク

SAStrutsS2JDBC を使って少し複雑なケースのWebアプリを開発する際において、現時点で自分が一番良いと考えているアーキテクチャを図示してみました。


f:id:dewa:20080605223938j:image


なかなか良い感じです。あえて、課題をあげるならば、次の2点です。

  • アクションフォームの内部クラスに @Component(instance = InstanceType.SESSION) を付けて、スコープをセッションにしたいができないこと(やり方が分からないだけだと思う。)←できないことが判明しました
  • ユースケースをまたいでアクションフォームを使用しない方針とした場合、検証メソッドをアクションフォームに書きたくなるが現状ではアクションにしか書けないこと。

追記:

1.0.3-rc1 より検証メソッドはアクションフォームに書くことができるようになります。

よって、検証メソッドはアクションからアクションフォームへ移すことをオススメします。

sugimotokazuyasugimotokazuya 2008/06/06 00:11 内部クラスのインスタンスは親クラスのインスタンスに依存するので、内部クラスのスコープは親のインスタンスと同じになると思います。

dewadewa 2008/06/06 01:27 > 内部クラスのスコープは親のインスタンスと同じになる
なるほど。そりゃ無理そうですね。良く分かりました。ありがとうございます。

だとすると、Teedaのような特定のユースケースのパッケージ内にActionや複数のDto, Serviceを混在できる仕組みが欲しくなりますよねー。この仕組みがあれば、内部クラスを作る動機がぐっと減るだろうなぁ。恐れているのは、dtoパッケージ直下のDtoクラスの数が増えすぎること。階層的にする方法もあるが、名前規約の都合でデフォルトで長い名前になるのがいや〜んかなぁ。

jflutejflute 2008/06/06 13:31 > 内部クラスのインスタンスは親クラスのインスタンスに依存する

は、staticな内部クラスだったら、関係ないんじゃないかな?
ただ、staticな内部クラスでちゃんとインジェクションコンポーネントに
なるかどうかは別の話として。

Connection: close