Struts Spring Plugin
ソースファイルがたった2つオープンソースプロダクト。これなら理解できる!ということでひとこと。
これを使うとActionをBeanFactoryで管理できるようになる。すなわちActionはSpringのAPIを使わずにSpringのBeanFactoryによってInjectionされた値を使うことができる。
- org.twdata.struts.SpringPlugIn
- StrutsのPlugInインタフェースをimplementsしたクラス。設定ファイルからBeanFactoryをつくってServletContextにくっつける。
- org.twdata.struts.SpringAction
- Actionを拡張したクラス。ProxyパターンのProxy役(だと思う)。struts-config.xmlで呼び出されるように設定する。呼び出されると次の手順を踏む。1)ServletContextからBeanFactoryを取得する。2)BeanFactoryからActionを取得する。3)本物のActionを実行する。
簡単に書けばこういうことが実現できるようになる。
public class HogeAction extends Action {
// BeanFactoryによってinjectionされる
private Hoge hoge = null;public void setHoge(Hoge hoge) {
this.hoge = hoge;
}public ActionForward execute
(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
String something = hoge.getSomething();
}
}
どうだろう?便利かな?