webwork2和spring的集成

阅读更多
初步研究了一下包webwork2-spring.jar ,这是webwork2和spring通过xwork外部引用的方式进行集成的。(我个人还是比较喜欢这种集成方式,web层和容器的边界分明)

      以下是这种集成方式的具体细节:

1 org.springframework.web.context.ContextLoaderServlet或org.springframework.web.context.ContextLoaderListener负责从获取由web.xml中context-param中名称为“contextConfigLocation”的application-context文件,并初始化spring容器。

2 com.atlassian.xwork.ext.ResolverSetupServletContextListener负责遍历xwork文件中所有package的externalReferenceResolver,并把spring容器的ApplicationContext传给package的externalReferenceResolver。

3 com.atlassian.xwork.ext.SpringApplicationContextReferenceResolver负责把xwork文件中对应的package中所有的Action的外部引用名使用getBean的方式进行对象依赖注射。

4 com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor只是一个接口,解析Action的外部引用时实际执行的实现是com.atlassian.xwork.ext.SpringApplicationContextReferenceResolver。

      这种集成方式使用servlet技术和xwork的Interceptor机制进行Action中的对象依赖注射,避免了spring容器对web层逻辑代码的入侵,这样的思路值得在今后的框架设计中借鉴。

-----作者: Rangers

你可能感兴趣的:(Spring,EXT,Web,框架,Servlet)