[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]Spring MVC 和 Spring的Context的父子关系

上一篇:[备忘]spring初始化执行任务,执行两次的问题
下一篇:[备忘]单点登录CAS的文档地址

添加日期:2016/2/16 14:40:39 快速返回   返回列表 阅读2211次

(1)
Spring的Context是org.springframework.context.ApplicationContext,它是root context,即最顶层的context。
在web.xml中是这样定义的:


<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/application-context.xml</param-value>
</context-param>



(2)
Spring MVC的Context是WebApplicationContext,他是一个child context,即子Context。
Spring MVC实际是一个Servlet,即WebApplicationContext


<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/spring/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>



(3)子Context可以看到所有root context中定义的bean,反过来则不能。

也就是说,你在mvc的controller中可以注入你在spring中定义的那些service,dao什么的,
反过来,在service中想注入controller是不行的。

在controller中可以通过RequestContextUtils.getWebApplicationContext(request)方法取得web application context。
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved