在Spring MVC的启动依赖Spring框架,有时候我们在启动Spring MVC环境的时候,如果配置不当的话会造成一些不可预知的结果。下面主要介绍一下Spring MVC环境启动的时候context的状态。
通常情况下使用Spring MVC需要进行如下配置:
1、web.xml中增加监听和dispatcherServlet入口
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
如上配置所示:监听器是装载Spring框架本身的bean上下文(如Service和DAO层等);dispatcherServlet是装载Controller的上下文。
2、监听器入口自动扫描配置(applicationContext.xml)
<aop:aspectj-autoproxy proxy-target-class="true" /> <context:component-scan base-package="com.moguhu"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <import resource="classpath*:beans-*.xml" /> <import resource="classpath*:config/beans-*.xml" />
上述的配置指定了Spring框架所扫描的注解不包括@Controller(也可以直接通过包名来指定),当然其他的配置文件(如:事务配置、AOP配置、定时任务等)可以通过<import />引入进来。
3、DispatcherServlet配置(dispatcher-servlet.xml)
<context:component-scan base-package="com.moguhu.controller.*" />
上面配置是指定了DispatcherServlet所创建的上下文只扫描控制层的beans,当然在dispatcher-servlet.xml中还可以指定视图解析、JSON转换、上传下载等配置信息。
在上面的配置中,listener会创建Spring MVC环境的父类上下文。父类上下文创建完成之后,当初始化DispatcherServlet的时候,就会将之前初始化的context设置为parent。
如果将listener启动的上下文和Dispatcher中启动的上下文所扫描的包都是全部包的话,就会造成在子类context和父类context都有全部的自定义beans,如下图所示
在 容器启动后获取bean的时候,也是先从子类容器中去获取bean,子类获取不到时,再到父类容器中去寻找。当子类容器中装载了Service和DAO 时,控制层就会使用子类容器所装载的bean去执行。但是这里面的service是没有事务等功能的(没有Spring框架的配置),只是普通的 bean,因此使用起来会有不可预知的问题。
http://m.ithao123.cn/content-8711958.html
相关推荐
Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring MVC4中,我们将会从头开始构建一个有用的Web应用。本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件...
五、Spring MVC双亲上下文的说明:在Spring MVC中,可以通过双亲上下文机制来共享Spring IoC容器中的Bean。这样,Spring MVC和Spring的应用程序上下文可以共享配置信息。 六、Spring MVC mvc.xml配置文件片段讲解:...
1. `org.springframework.context-3.0.2.RELEASE.jar`:这个库提供了上下文支持,包括应用上下文(ApplicationContext)和扩展上下文(ExtendedContext)。ApplicationContext 是 Spring 中的核心接口,它负责管理 ...
4. **Servlet 相关库**:Spring MVC 需要与 Servlet 容器进行交互,因此需要 `servlet-api.jar` 和 `jsp-api.jar`。这两个 jar 包通常由服务器提供,但在开发环境中可能需要手动添加。 5. **JSTL(JavaServer Pages...
Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...
15. **兼容性与兼容性测试**:Spring MVC 4.0确保与各种Web容器的兼容性,如Tomcat、Jetty等,并提供了全面的兼容性测试。 以上就是Spring MVC 4.0的主要特点和知识点。这个版本在易用性、性能和功能方面都有显著...
`org.springframework.context-3.1.1.RELEASE.jar` 和 `org.springframework.beans-3.1.1.RELEASE.jar` 是Spring框架的核心组件,提供了上下文管理和bean工厂的功能,能够管理应用的生命周期和依赖注入。 `org....
在本项目中,Spring作为容器管理了所有bean的生命周期,包括Spring MVC的控制器、Mybatis的SqlSessionFactory等,同时提供了事务管理功能。 **4. 数据库设计** 博客系统的数据库通常会包含用户表、博客文章表、评论...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个教程“Spring MVC - A Tutorial”旨在帮助开发者深入理解和掌握Spring MVC的核心概念和...
Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...
通过实现HandlerInterceptor接口并注册到Spring MVC上下文,即可实现拦截功能。 9. **RESTful API支持** Spring MVC提供了很好的RESTful服务支持,通过@RequestMapping的GET、POST、PUT、DELETE等方法映射HTTP动词...
可用于分析spring mvc源码、spring mvc父子容器初始化流程、session和cookie机制、spring session等,也可以用于学习Java Web(servlet、filter、listener等)、spring源码等。 该项目使用servlet3.0规范,无web.xml...
五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解 七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc 请求如何映射到具体的Action中的方法? 九、spring mvc 中的拦截器...
Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...
### Spring MVC 教程知识点详解 #### Spring Web MVC 框架简介 Spring Web MVC 是 Spring Framework 的一个重要组成部分,主要用于构建基于 Java 的 Web 应用程序。它提供了一个灵活且强大的 MVC 实现,使得开发者...
在这个视频教程中,你可能将学习到如何配置Spring的XML上下文文件以启用注解驱动的配置,如何在Spring MVC中创建注解式的控制器并处理HTTP请求,以及如何通过Hibernate的注解来设计数据模型并执行CRUD操作。...
将项目部署到Tomcat或其他Servlet容器,访问`http://localhost:8080/SummerWeb/hello`,应能看到"Hello, Spring MVC!"的欢迎消息。 通过这个简单的Demo,我们可以了解到Spring MVC的基本工作流程:从HTTP请求到...
Spring-context模块提供了访问应用程序对象的上下文,它是一个配置文件,用于配置应用程序中的对象,它还集成了Spring AOP的功能;Spring-context-support是为了支持第三方库集成到Spring应用程序上下文中;Spring-...
2. **Spring Web**:这个模块提供了与Web相关的功能,如Servlet监听器、HTTP上下文等,使得Spring可以与Web应用服务器进行交互。 3. **Spring MVC**:包含`spring-webmvc.jar`,提供了MVC的具体实现,如...