ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Super Agile Spring

Springは2.5からコンポーネントの自動登録も実装され、HOT deploy以外は、Seasar2との差もほとんどなくなりました。私の願いは、「多くの開発者に楽しく開発してもらうこと」なので、Springを使っている人に楽しく開発してもらうことも、もちろん私の願いです。
そこで開発したのが、Super Agile Spring。Seasar2のSMART deploy(HOT deployを含む)のエンジンをSpringに移植したもので、ApplicationContext(Springのコンテナ)のラッパーとして機能します。
例えば、getBean("fooService")した場合、最初、SpringのコンテナにそのBeanが存在するか尋ね、存在している場合は、そのままSpringのBeanを返します。存在していない場合は、名前から自動的に、ルートパッケージ.service.impl.FooServiceImplを探し出し、HOT deploy用のSpringのコンテナに登録し、そのBeanを返します。
HOT deploy用のコンテナは、リクエストが終了するとクリアされます。
この辺の仕掛けは、Seasar2のHOT deployと同様です。
これからは、Springでも「さくさく感」のあるSuper Agileな開発が可能になりますよ。
まだ、手をつけていませんが、SAStrutsS2JDBCSuper Agile Spring上に移植する予定です。
Grailsだと不安に思う方もいるかもしれませんが、Super Agile Springだと、そのまんまのJavaでさくさく開発できるので、安心です。本番は、COOL deployにすることで、最初にすべてのデプロイを済まし、高いパフォーマンスを得ることもできます。