启动Spring:web.xml方式
来源:互联网 发布:复制加密光盘软件 编辑:程序博客网 时间:2024/05/18 00:54
前言
Spring是一个容器,它支持JPA(Java持久化接口)、IoC(反转控制)、DI(依赖注入)、AOP(面向切面编程)、MVC(模型-视图-控制器)等等,它们能在Spring环境下工作。我们知道,Tomcat也是一个容器,一个JavaEE程序容器,同所有容器一样,要让容器工作,就必须启动它,还需要配置它,指导它如何工作。
应用上下文
应用上下文是Spring运行的环境,从狭义上讲,应用上下文就是一组配置,指定需要管理哪些bean,如何执行事务等等。应用上下文对应的java类型是org.springframework.context.ApplicationContext接口。一个Spring应用程序至少需要一个应用上下文,通常情况下,我们创建一个根应用上下文和一个DispatcherServlet应用上下文,根应用上下文管理一组和业务逻辑相关的bean,而DispatcherServlet应用上下文管理一组和控制相关的bean。一个应用上下文管理的bean可以访问相同上下文、父应用上下文、父应用上下文的父应用上下文(可以无限制的往上推)的bean。也即是说,DispatcherServlet应用上下文的bean可以访问根应用上下文的bean。一个常见的场景是,DispatcherServlet应用上下文有个控制类的bean,需要访问定义在根应用上下文的业务类的bean。
既然应用上下文是Spring运行的环境,启动Spring就需要配置应用上下文。有两种配置方式,分别是xml文件和java编程。
web.xml启动Spring
应用上下文的配置方式是xml文件
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/rootContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/res/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>springDispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/servletContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>使用ContextLoaderListener创建一个根应用上下文,指定根应用上下文的配置方式是xml文件,配置文件是/WEB-INF/rootContext.xml。
使用DispatcherServlet创建一个DispatcherServlet应用上下文,指定DispatcherServlet应用上下文的配置方式是xml文件,配置文件是/WEB-INF/servletContext.xml。DispatcherServlet在应用程序容器启动时启动,映射模式是/,映射所有的请求。DispatcherServlet把请求转发给控制器的方法,进行必要的业务处理。ContextLoaderListener会先于所有的servlet启动。
有一个默认的servlet,映射模式是/res/*,凡是资源文件的请求都会映射到默认servlet(假设所有的资源文件,比如css、js、图片、flash等都放在目录res及其子目录下)。映射模式/res/*比映射模式/具体,前者会覆盖后者。比如有个请求http://locahost:8080/test/res/test.jpg,那么该请求会映射到默认servlet,而不是DispatcherServlet。此处为什么需要一个默认servlet映射资源文件的请求呢?DispatcherServlet的任务是把请求映射到控制器的方法,方法做业务处理。但是,对于资源文件来说,显然没有业务处理的需求,所以提供默认servlet,做出默认的响应。
应用上下文的配置方式是java编程
<context-param> <param-name>contextClass</param-name> <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value>com.gxz.config.RootContextConfig</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/res/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>springDispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextClass</param-name> <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value> </init-param> <init-param> <param-name>contextConfigLocation</param-name> <param-value>com.gxz.config.DispatcherServletContextConfig</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
使用ContextLoaderListener创建一个根应用上下文,指定根应用上下文的配置方式是java编程,编写配置的java类是com.gxz.config.RootContextConfig。设备上下文的配置方式是java编程和配置方式是xml文件相比,前者的contextConfigLocation是一个java类,后者是一个xml文件。另外,前者需要指定contextClass的值是org.springframework.web.context.support.AnnotationConfigWebApplicationContext,表示设备上下文的配置方式是java编程。
使用DispatcherServlet创建一个DispatcherServlet应用上下文,指定DispatcherServlet应用上下文的配置方式是java编程,编写配置的java类是com.gxz.config.DispatcherServletContextConfig。和根应用上下文的启动方式一样,DispatcherServlet应用上下文也需要指定contextClass的值。
0 0
- 启动Spring:web.xml方式
- web.xml方式加载Spring
- web.xml 通过 contextConfigLocation 配 spring 方式
- web应用中,Spring的启动方式
- web.xml中配置spring的几种方式 spring spring web.xml
- web.xml中配置spring的几种方式 spring spring web.xml
- web.xml中配置启动spring容器的参数
- 通过web.xml启动spring容器遇到classnotfound解决方法
- 关于web.xml启动spring容器的配置文件的建议
- web.xml 通过contextConfigLocation配spring 的方式
- web.xml 通过contextConfigLocation配置spring 的方式
- web.xml 通过contextConfigLocation配置spring 的方式
- web.xml 通过contextConfigLocation配置spring 的方式
- web.xml 通过contextConfigLocation配置spring 的方式(转)
- Spring配置文件 在web.xml的几种配置方式
- web.xml 通过contextConfigLocation配spring 的方式
- web.xml中配置spring的几种方式
- web.xml 通过contextConfigLocation配spring 的方式
- noip2015 day1 斗地主
- jQuery选项卡切换原理
- map函数的简单用法。
- c语言练习题——递归和栈编程训练
- 嵌入式开发第36天(UDP网络传输之:广播、组网原理)
- 启动Spring:web.xml方式
- 【KMP】【最小表示法】NCPC 2014 H clock pictures
- 大数据Spark “蘑菇云”行动第35课SparkMaster、Worker、Driver、Executor工作流程详解
- 电路与Multisim 功率表(瓦特计)与功率探针的使用
- python文件和路径操作
- c语言练习题——字符串训练
- macos CrashReporter分析
- QQ授权登录和微信授权登录
- D:/与D:\的区别