曾经看到过一个web.xml有上千行,如果出现点问题,开发人员根本就不知道现场是怎么一种情况。
更要命的是在不同的应用服务器,比如说在旧的websphere版本上用listener启动Spring就是有问题的。
如果要进行软件升级,那悲催了,不仅要修改应用相关的内容,还要对web.xml进行修改。
要把几个模块集成在一起,完蛋了,光web.xml的合并就困难得不行不行。
Tiny构建者深知web.xml给程序员和现场实施人员带来的不便与困扰,因此设计了以下方案进行解决,从此再不用关心web.xml。
先来看一下,tiny框架中,web.xml中配置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<
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
>
|
然后,web.xml文件就不允许再动了,换而言之,使用Tiny框架并用其模板创建了工程之后,web.xml文件就是不被允许修改的。
当然,带来一个问题就是?如果要增加别的listener,filter,servlet怎么办?
Tiny框架接管了所有的这些配置,支持自发现,也就是说你只要按照Tiny配置规范配置,然后就不用管了,Tiny框架会发现并加载它们。当然,Tiny框架还有一套配置管理规范,并有配置框架支持,在Tiny框架中,所有的配置信息都是被集中中一起的。
对于已经实现好的listener,filter,servlet,也不用担心,不用做任何修改,直接配入即可。
比如:资源压缩过滤器就是别人写好的,我们要复用,只要把这个Filter配置为一个Spring的Bean,然后如下配置就可以了:
1
2
3
4
|
<
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
>
|
1
2
3
4
|
<
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的处理器,就是通过如下配置加入的:
1
2
3
4
5
|
<
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
>
|