通过web.xml文件自动启动spring容器加载对应的配置文件

在web开发中可以在web.xml文件中配置自启动的servlet或者web容器监听器,借助两者中的任何一者都可以完成启动spring web应用上下文的工作。

下面给出使用web监听器的方式来实现启动是spring容器的配置文件

<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><display-name>demo-demo Web Application</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:config/spring/common/appcontext-*.xml,classpath*:config/spring/local/appcontext-*.xml,classpath*:config/spring/local/emidas-activity-biz-*.xml,classpath*:config/spring/local/emidas-activity-web-*.xml</param-value></context-param><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:log/log4j.xml</param-value></context-param><context-param><param-name>log4jRefreshInterval</param-name><param-value>60000</param-value></context-param><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter><filter-name>cat-filter</filter-name><filter-class>com.dianping.cat.servlet.CatFilter</filter-class></filter><filter><filter-name>struts-prepare</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class><init-param><param-name>config</param-name><param-value>struts-default.xml,struts-plugin.xml,config/struts/struts.xml</param-value></init-param></filter><filter><filter-name>sitemesh</filter-name><!--<filter-class>com.dianping.decorator.sitemesh.ExtendedSiteMeshFilter</filter-class>--><filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class></filter><filter><filter-name>struts-execute</filter-name><filter-class>com.dianping.midas.authority.api.common.AuthorityFilter</filter-class><init-param><!--  <param-name>include</param-name><param-value>login,selectActivity,addActivityInit,updateActivity,addLaunchInit,selectActivity,updateActivity,selectModule,addModuleInit,updateModule</param-value> --> <param-name>exclude</param-name><param-value>/getActivityDataSum,/activities/external/ajax,/penaltyChartClear,/activityChartClear,/penaltyChart,/activityChart,/mactivity/common,/brandArea,/getImgUrlAjax,/ftpUpLoadImgAjax,/index.html,/Heartbeat.html,/getPrizePackageUrl,/getLaunchInfoByActivityId,/addLaunchInterface,/freeOrderLaunchStatus,/invokeForMaterial,/checkToken,/listShopsAjaxNew,/listShopsAjax,/generationLaunch,/pushActivity,/promotion,/operation,/img,/js,/css,/newClickdate</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping><filter-mapping><filter-name>cat-filter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping><filter-mapping><filter-name>struts-prepare</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping><filter-mapping><filter-name>sitemesh</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher></filter-mapping><filter-mapping><filter-name>struts-execute</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping><servlet><servlet-name>JspSupportServlet</servlet-name><servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet><servlet-name>errorHandlerServlet</servlet-name><servlet-class>com.dianping.emidas.base.errorhandle.ErrorHandlerServlet</servlet-class></servlet><servlet-mapping><servlet-name>errorHandlerServlet</servlet-name><url-pattern>/errorHandlerServlet.xfc</url-pattern></servlet-mapping><error-page><exception-type>java.lang.Throwable</exception-type><location>/errorHandlerServlet.xfc</location></error-page><error-page><error-code>404</error-code><location>/errorHandlerServlet.xfc</location></error-page><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><listener><listener-class>com.dianping.cat.servlet.CatListener</listener-class></listener><strong><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener></strong><listener><listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class></listener><servlet><servlet-name>sitemesh-freemarker</servlet-name><servlet-class>com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet</servlet-class><init-param><param-name>TemplatePath</param-name><param-value>/</param-value></init-param><init-param><param-name>default_encoding</param-name><param-value>utf-8</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>sitemesh-freemarker</servlet-name><url-pattern>*.ftl</url-pattern></servlet-mapping><welcome-file-list><welcome-file>login.ftl</welcome-file></welcome-file-list>
</web-app></span>
因为我们使用的是web监听器的方式来进行的,所以必须将 Log4jConfigListener放在 ContextLoaderListener的前面, 采用上面的配置方式spring将自动使用XmlWebApplicationContext启动spring容器,即通过XML文件为spring容器提供bean的配置信息。




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度蜘蛛网站分两个服务器,SEOer需要将百度蜘蛛抓取时间降低到1秒以下

网站加载速度过度一定会被搜索引擎惩罚&#xff0c;所以当我们一个站优化之初就应该非常严格地控制百度蜘蛛抓取诊断结果在1秒以内。今天&#xff0c;错误博客( cuowu.com )分享的内容为《SEOer需要将百度蜘蛛抓取时间降低到1秒以下》。希望对大家有所帮助。一、百度官方说法Ba…

前端小结(5)---- iframe

iframe对应的div: <div id"iframezone"><iframe id"iframe" frameborder0 scrollingno height"0" width"0" onload"autoHeight();"></iframe></div> <li><a data-toggle"tab" h…

Maven中Spring-Data-Redis存储对象(redisTemplate)

Redis是一种nosql数据库&#xff0c;在开发中常用做缓存。Jedis是Redis在Java中的redis- client.在此之前&#xff0c;希望已经了解redis的基本使用和Maven的使用。建立Maven Project之后&#xff0c;在POM.xml中添加jedis和spring-data-redis的依赖如下&#xff1a; <depen…

opc服务器网站,OPC 服务器

OPC服务器OPC服务器, 是指按照OPC基金组织规定的OPC规范群开发的软件驱动。OPC服务器作为中间媒介负责从数据源读取数据再跟另外一端的客户端通信。在OPC客户端/服务器的结构图中, 通信的发起端是, 也只能是OPC客户端。客户端和服务器的对话是双向的, 也就是说, 客户端既可以从…

LeetCode 292 Nim Game

LeetCode 292 Nim Game https://leetcode.com/problems/nim-game/ 当能被4整除时&#xff0c;才会输。 bool canWinNim(int n) {return n%4; } 转载于:https://www.cnblogs.com/walker-lee/p/4878435.html

前端学习(1620):前端系列实战课程之提取行间样式

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><!-- 放在头部 --><…

ThreadLocal知识介绍

ThreadLocal为解决多线程的并发问题提供了一种新的思路&#xff0c;使用这个工具类可以优美的编写出多线程程序。 ThreadLocal他不是一个线程&#xff0c;而是线程的一个本地化对象。当工作于多个线程的对象使用ThreadLocal维护变量时&#xff0c;ThreadLocal为每个使用改变量的…

维修变频器和服务器赚钱吗,【转】一个变频器维修老手的7年经验与心得

到今年为止&#xff0c;我在电路板维修行业已经七年了&#xff0c;手里经过的板子不计其数&#xff0c;大的小的&#xff0c;简单的难的都有&#xff0c;帮助很多的有名企业度过很多的难关。现在每个企业都不同程度的用到许多变频器&#xff0c;而不管哪种变频器他 的寿命好像都…

第十三章、拷贝控制

一、拷贝控制操作 1、拷贝构造函数&#xff1a;一个构造函数的一个参数是自身类类型的引用&#xff0c;且额外参数都有默认值 class Foo{ public:Foo(const Foo&); //拷贝构造函数&#xff1b;&#xff1b;最好是const类型&#xff1b;不应该是explicit的 }拷贝构造…

ThreadLocal和线程同步机制的对比

ThreadLocal和线程同步都是为了解决多线程中相同变量的访问冲突问题&#xff0c;那么&#xff0c;二者的区别在哪里&#xff1f;和线程同步机制对比&#xff0c;ThreadLocal有什么优势&#xff1f; 同步机制中通过对象的锁机制保证同一时间只有一个线程来访问变量&#xff0c;这…

关于电脑自动获取和静态IP的问题

无法设置静态IP和设置了静态IP&#xff0c;但是无效的问题。 1、先是重新安装TCP/IP协议 选TCP/IP&#xff0c;点安装&#xff0c;再选择协议&#xff0c;点添加&#xff0c;选从磁盘安装&#xff0c;路径为&#xff1a;C:\Windows\inf\1394.inf&#xff0c;点打开 此时&#x…

javaweb中报404错误

这里只提供了一点建议&#xff0c;404大家都懂得是找不到请求的页面&#xff0c;一般就是URL路径请求错误 但是我最近发现自己出现这个错误的原因是&#xff1a;每次的struts的配置文件的命名空间忘记加在了form表单的action名字所对应的前面&#xff0c;一定不要忘了当自己定…

深入浅出: Java回调机制(异步)

一、什么是回调 回调&#xff0c;回调。要先有调用&#xff0c;才有调用者和被调用者之间的回调。所以在百度百科中是这样的&#xff1a; 软件模块之间总是存在着一定的接口&#xff0c;从调用方式上&#xff0c;可以把他们分为三类&#xff1a;同步调用、回调和异步调用。 回调…

WCF资料

Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4转载于:https://www.cnblogs.com/HQFZ/p/4884243.html

SSH中为什么action需要用多例而dao层和service层为什么就用单例就可以

很简单的道理&#xff0c;就跟你自来水一样&#xff0c;有很多的水龙头&#xff0c;但水管只有一个。为啥要很多水龙头&#xff0c;因为有多个人同时用&#xff1b;为了避免长队&#xff0c;只能这样来分担压力为啥只有一个水管&#xff0c;易维护&#xff0c;集中处理。 使用…

Nagios配置

其实上篇Nogios安装只是安装了Nagios基本组件&#xff0c;虽然能够打开主页&#xff0c;但是如果不配置相关配置文件文件&#xff0c;那么左边菜单很多页面都打不开&#xff0c;相当于只是一个空壳子。接下来&#xff0c;我们来学习研究一下Nagios的配置,了解一下基本的配置和了…

服务器启动时Webapp的web.xml中配置的加载顺序

一 1、启动一个WEB项目的时候&#xff0c;WEB容器会去读取它的配置文件web.xml&#xff0c;读取<listener>和<context-param>两个结点。 2、紧急着&#xff0c;容创建一个ServletContext&#xff08;servlet上下文&#xff09;&#xff0c;这个web项目的所有部分都…

JQuery.autocomplete扩展功能:实现多列自动提示

最近做一个项目&#xff0c;用到了JQuery的自动补全函数&#xff0c;但默认的是只显示一列数据&#xff0c;所以就略加修改&#xff0c;拿出来献丑了。 下面这个是默认调用本地数据&#xff1a; $("#tags").autocomplete(["c","java", &…

用java创建UDF,并用于Hive

典型代码如下&#xff1a; 导入UDF类&#xff1a; import org.apache.hadoop.hive.ql.exec.UDF; public class UpperCassUDF extends UDF{ public String evaluate(String input){ if(inputnull){ return null; } else{ return new String(input.toUpperCase()); } } } 导出jar…

单元素枚举类实现单例模式

本文转载自&#xff1a;点击打开链接 Inspired by Effective Java. Singleton模式是在编程实践中应用最广泛的几种设计模式之一。以前知道的&#xff0c;实现单例的方法有两种(下面的A、B)。刚刚在读《Effective Java的时候》学到一种新的更好的方法(E)&#xff1a;单元素的枚举…