Slim3

仕事で勉強会にはいけなかったのですが、資料を見てのちょっとした感想

  • Configurerの目的がいまひとつピンときませんでした。環境切り分け用であれば、SpringはJNDIを簡単に使えるのでそちらを利用したいところです。特に、本番環境用設定は設定ファイル上には持ちたくないので、セキュリティ的にはJNDIが最も安心だと思っています。環境面での切り替え用途だけではなく、APサーバ提供機能に対する切り分けという意味でも便利ですし。Seasar2のJndiContext相当の機能が提供されれば、SpringのJNDI機能はもっと便利になるだろうと感じています。
  • AOPの例でMethodInterceptorが使われているのが気になりました。Spring2でのAOP記述の推奨パターンはAspectJ形式ですし、AspectJ形式で書いておけばいざというときにAOP実行をAspectJに切り替えることが出来ます。MethodInterceptorだとSpringAOP前提になってしまうので、「自身の内部で呼ぶメソッドにはAOPが適用されない」という致命的な問題点を回避できません。
  • Springには@Controller、@Service、@Repositoryというレイヤ層を意識したComponent登録用アノテーションが存在します。ただしSpringは、これらのアノテーション用デフォルト設定定義を用意していません。SlimでこれらSpringアノテーション用のデフォルト定義を用意してあげたら、Springユーザ的にはとても便利に感じるのではないかと思いました。
  • Springの世界では、JPASeasar2の世界に比べてよりメジャーだと思います。なので、Slim JPAと名前を付けてしまうと、独自のJPA実装だと勘違いされてしまう可能性が高いのではと思いました。
  • @TransactionAttributeアノテーションが使えるのは便利そうです。Springは@Resource等のJavaEE5アノテーションには対応していますが、EJB3アノテーションには何一つ対応してませんから・・・ここまで来ると、ロッド・ジョンソンのEJB嫌いには病的な拘りを感じてしまいます(苦笑)

こんなところでしょうか。あくまでSpringユーザとしての視点で書いてみました。後、S2JTA同等機能が提供されて、SpringのJtaTransactionManagerで簡単に使えるようになると、すごく便利だろうなと思っています。