webwork2和spring的集成 博客分类: Java技术 SpringEXTWeb框架Servlet
程序员文章站
2024-03-24 10:42:46
...
初步研究了一下包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
以下是这种集成方式的具体细节:
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
上一篇: fastMock平台模拟接口
下一篇: iOS平台DeepLink相关介绍