Spring 2.0.3
MyFaces 1.1.5
Springで定義したBeanをJSFのBeanとして取り扱う方法。
1)Springのフィルターをweb.xmlに定義する。
<filter> <filter-name>requestContextFilter</filter-name> <filter-class> org.springframework.web.filter.RequestContextFilter </filter-class> </filter> <filter-mapping> <filter-name>requestContextFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2)faces-config.xmlにSpringのVariableResolverを定義する。
<application> <variable-resolver> org.springframework.web.jsf.DelegatingVariableResolver </variable-resolver> </application>
3)SpringのBean定義でscope属性(request/session/singleton)を設定する。
<bean id="hogeHoge" scope="session" class="xxx.yyy.zzz.HogeHoge" /> </bean>
上記により、JSF側から従来どおりの記述で(JSPのEL記述、FormBean)で、SpringのBeanが取得できる。
SpringのBean定義を共有することにより、DIコンテナ、AOP等のメカニズムの恩恵を受けることができる。
■参考サイト
IT-Walker on hatena - Ajax+Javaアーキテクチャ構築記
http://d.hatena.ne.jp/Syunpei/20061109