您的位置:首页 > 移动开发 > WebAPP

Struts2获取Spring的WebApplicationContext

2011-05-12 19:59 323 查看
WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext());


WebApplicationContext资料(转自http://hi.baidu.com/sbipbje123/blog/item/7036ecce8b855a0693457e2c.html):

WebApplicationContext是专门为Web应用准备的,它允许从相对于Web根目录的路径中装载配置文件完成初始化工作.从WebApplicationContext
中可以获得ServletContext的引用,整个Web应用上下文对象将作为属性放置到ServletContext中,以便Web应用环境可以访问
Spring应用上下文.Spring专门为此提供一个工具类WebApplicationContextUtils,通过该类的getWebApplicationContext(ServletContext
sc)方法,即可以从ServletContext中获取WebApplicationContext实例.

Spring2.0在WebApplicationContext中还为Bean添加了三个新的作用域:request作用域.session作用域和
global session作用域 .而在非Web应用的环境下,Bean只有singleton和prototype作用域.

由于Web应用比一般的应用拥有更多的特性,因此WebApplicationContext扩展了
ApplicationContext.WebApplicationContext定义了一个常量
ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,在上下文启动时,WebApplicationContext实例既以
次为键放置在ServletContext的属性列表中,因此我们可以直接通过以下语句获取:

WebApplicationContext wac=(WebApplicationContext)servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);


这正是我们前面所提到的WebApplicationContextUtils工具类
getWebApplicationContext(ServletContext
sc)方法的内部实现方式.这样Spring的Web应用上下文和Web容器的上下文实现互放,二者实现了融合.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: