曾经看到过一个web.xml有上千行,若是出现点问题,开发人员根本就不知道现场是怎么一种状况。 html
更要命的是在不一样的应用服务器,好比说在旧的websphere版本上用listener启动Spring就是有问题的。 java
若是要进行软件升级,那悲催了,不只要修改应用相关的内容,还要对web.xml进行修改。 程序员
要把几个模块集成在一块儿,完蛋了,光web.xml的合并就困可贵不行不行。 web
Tiny构建者深知web.xml给程序员和现场实施人员带来的不便与困扰,所以设计了如下方案进行解决,今后再不用关心web.xml。 json
先来看一下,tiny框架中,web.xml中配置。 服务器
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Archetype Created Web Application</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> <listener> <listener-class> org.tinygroup.weblayer.ApplicationStartupListener </listener-class> </listener> <filter> <filter-name>TinyFilter</filter-name> <filter-class>org.tinygroup.weblayer.TinyHttpFilter</filter-class> </filter> <filter-mapping> <filter-name>TinyFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> </web-app>OK,一个listener用于启动,一个filter用于处理全部内容,结束了。
而后,web.xml文件就不容许再动了,换而言之,使用Tiny框架并用其模板建立了工程以后,web.xml文件就是不被容许修改的。 app
固然,带来一个问题就是?若是要增长别的listener,filter,servlet怎么办? 框架
Tiny框架接管了全部的这些配置,支持自发现,也就是说你只要按照Tiny配置规范配置,而后就不用管了,Tiny框架会发现并加载它们。固然,Tiny框架还有一套配置管理规范,并有配置框架支持,在Tiny框架中,全部的配置信息都是被集中中一块儿的。 jsp
对于已经实现好的listener,filter,servlet,也不用担忧,不用作任何修改,直接配入便可。 url
好比:资源压缩过滤器就是别人写好的,咱们要复用,只要把这个Filter配置为一个Spring的Bean,而后以下配置就能够了:
<tiny-wrapper-filter id="tinyFilterWrapper" class="tinyFilterWrapper"> <init-param name="filter_beans" value="gZIPFilter"></init-param> <filter-mapping url-pattern=".*"></filter-mapping> </tiny-wrapper-filter>固然Servlet也是同样的,下面就是jsp的例子:
<tiny-processor id="jspProcessor" class="tinyProcessorWapper"> <init-param name="servlet_bean" value="jspServlet"></init-param> <servlet-mapping url-pattern=".*\.jsp"></servlet-mapping> </tiny-processor>因此,没有任何不一样。
固然,里面还会有许多Tiny框架的处理器:
好比处理MDA的处理器,就是经过以下配置加入的:
<tiny-processor id="mdaTinyProcessor" class="mdaTinyProcessor"> <servlet-mapping url-pattern=".*\.model"></servlet-mapping> <servlet-mapping url-pattern=".*\.modellet"></servlet-mapping> <servlet-mapping url-pattern=".*\.modeljson"></servlet-mapping> </tiny-processor>小结,在Tiny框架中,web.xml中的全部配置都被接管,并被赋予自发现能力,带来的好处就是,若是我依赖了某个Jar包(Tiny中叫业务单元),它须要有某个过滤器或处理器,那它就会被加载,而不须要程序员进行干预,也不须要现场支持人员进行修改。