Slim3 Spring完成

Springでagileな開発を可能にするSlim3 Springが完成しました。既にSlim3 Strutsは完成してます。Slim3 JDBCは、まだ開発中なので、ファーストリリースは、GW明けになりそうです。


slim3-tutorial(https://www.slim3.org/svn/trunk/)のサンプルWTPプロジェクトをつくりました。以前のslim3-struts-tutorialとは、違うプロジェクトなので、ご注意ください。
Spring Beanであるtutorial.infrastructure.service.SpringAddServiceが、Slim3 Beanのtutorial.agile.service.AddServiceにDIされているのがわかります。
Slim3の方はもともと設定がほとんどありませんが、Springのほうもcontext:component-scanを使っているので、クラスに@Serviceとかつければ自動でSpringに登録されます。base-packageがtutorial.infrastructureになっているので、Slim3と設定がぶつかることもありません。
Springの開発も楽になりましたねぇ。


トランザクションもアクションに自動的にかかるようになっています。そのための設定は、src/main/resources/slim3_configuration.propertiesに次のように書かれています。


slim3.interceptors.action=org.slim3.commons.transaction.TransactionInterceptor
これだけで、tutorial.agile.actionパッケージのすべてのクラスにトランザクションをかけられるようになります。アプリケーションサーバごとの設定は特に必要なく、全部自動で設定されます。


これで、Springを使った開発でも、HOT deployを使うことができます。ただし、HOT deployが利くのは、Slim3で管理されているtutorial.agileパッケージのクラスたちだけです。


試してみるとわかりますが、HOT deploy中でも、通常と同じくらいさくさく動きます。この辺は、TeedaSAStrutsSeasar2.4の経験が生かされています。


GuiceやでもHOT deployをできるようにしようと思っていましたが、富山でヨシオリに話したら、「ふーん」と興味なさそうに流されたので、対応は見送ることにします。一応、Guiceにも対応できるような仕掛けは、入れてありますが、なくなったモチベーションは戻らないということで。