资源描述
汽车坐垫_汽车坐垫那种好
本文由汽车坐垫网 提供整理
一直在探索如何实现WEB应用程序的模块化开发,因为模块化开发最大的好处就是,复用方便,维护方便。
最近设计了这样一个WEB应用程序结构:
WEB应用只作为应用程序框架,不包含任何业务逻辑,应用程序框架的配置文件配置各个WEB应用程序模块的前缀URL。
配置文件类似:
Xml代码
1 <modules>
2 <module base-url="/admin" module-name="moduleA">
3 <module base-url="/" module-name="moduleB">
4 </modules>
当然,还可能会包含配置模块的一些配置文件,因为在复用时,部署在不同服务器的模块配置可能不同,比如数据库配置
显而易见,这个应用程序框架一定至少是一个MVC框架,因为它要负责请求的转发。
这样这个WEB应用程序就是完全可配置的,因为这个WEB应用程序不包含任何业务逻辑,如果没有配置模块,将无法处理任何访问请求。
包含业务逻辑的WEB应用模块应自包含响应请求的程序,和URL影射表,以及其他相关资源,如图片,等。这点有两种做法,一种是通过配置文件,一种就是通过Java注解(annotation)
既然各个模块是可以自由组合部署的,当然Jar Hell的问题是不应出现的。
所有模块的Jar程序均部署在一个统一的网络位置上,这样任何一个应用服务器只需要更改配置文件,就可以立刻改变这台应用服务器所实现的功能。
希望听听对模块化WEB开发感兴趣的朋友的想法。
关于这个结构的实践:
JIOPi提供了支持模块化的ClassLoader,既可以让程序从同一个网络位置上加载Java程序和资源文件,并解决模块间的Jar Hell问题。
MVC部分当然也是这个结构中最为关键的一个部分,因为全靠MVC框架来识别和分发请求。但目前所有MVC框架都是使用 ContextClassloader来加载相应程序,因此,这里是最麻烦的,因为要用JIOPi的ClassLoader来代替 ContextClassLoader,从而可以加载没有部署在WEB应用程序框架中的各个模块中的程序和资源。我在我的项目中先写了一个简单的MVC来 进行了实践,不过由于临时写的MVC系统比较薄弱,虽然统一位置部署和模块化部分运作正常,但也丢失了使用经典MVC框架的很多开发便利性。
另一个实验:使用Nutz的MVC
Nutz的MVC提供了一个易用但完善的MVC方案,这两天对Nutz的源码做了少量修改以整合JIOPi,并做了一个简单的WEB应用程序模 块,可以用来展示这个模块化WEB应用程序框架的部分特性,有兴趣的朋友可以下载附件。如果你对Nutz的MVC比较熟悉,就会知道,开发方式与Nutz MVC完全一致,唯一的不同就是,业务逻辑相关的资源没有部署在WEB应用中,而是可以通过在WEB应用(框架)中进行配置加载。 一直在探索如何实现WEB应用程序的模块化开发,因为模块化开发最大的好处就是,复用方便,维护方便。
最近设计了这样一个WEB应用程序结构:
WEB应用只作为应用程序框架,不包含任何业务逻辑,应用程序框架的配置文件配置各个WEB应用程序模块的前缀URL。
配置文件类似:
Xml代码
1 <modules>
2 <module base-url="/admin" module-name="moduleA">
3 <module base-url="/" module-name="moduleB">
4 </modules>
当然,还可能会包含配置模块的一些配置文件,因为在复用时,部署在不同服务器的模块配置可能不同,比如数据库配置
显而易见,这个应用程序框架一定至少是一个MVC框架,因为它要负责请求的转发。
这样这个WEB应用程序就是完全可配置的,因为这个WEB应用程序不包含任何业务逻辑,如果没有配置模块,将无法处理任何访问请求。
包含业务逻辑的WEB应用模块应自包含响应请求的程序,和URL影射表,以及其他相关资源,如图片,等。这点有两种做法,一种是通过配置文件,一种就是通过Java注解(annotation)
既然各个模块是可以自由组合部署的,当然Jar Hell的问题是不应出现的。
所有模块的Jar程序均部署在一个统一的网络位置上,这样任何一个应用服务器只需要更改配置文件,就可以立刻改变这台应用服务器所实现的功能。
希望听听对模块化WEB开发感兴趣的朋友的想法。
关于这个结构的实践:
JIOPi提供了支持模块化的ClassLoader,既可以让程序从同一个网络位置上加载Java程序和资源文件,并解决模块间的Jar Hell问题。
MVC部分当然也是这个结构中最为关键的一个部分,因为全靠MVC框架来识别和分发请求。但目前所有MVC框架都是使用 ContextClassloader来加载相应程序,因此,这里是最麻烦的,因为要用JIOPi的ClassLoader来代替 ContextClassLoader,从而可以加载没有部署在WEB应用程序框架中的各个模块中的程序和资源。我在我的项目中先写了一个简单的MVC来 进行了实践,不过由于临时写的MVC系统比较薄弱,虽然统一位置部署和模块化部分运作正常,但也丢失了使用经典MVC框架的很多开发便利性。
另一个实验:使用Nutz的MVC
Nutz的MVC提供了一个易用但完善的MVC方案,这两天对Nutz的源码做了少量修改以整合JIOPi,并做了一个简单的WEB应用程序模 块,可以用来展示这个模块化WEB应用程序框架的部分特性,有兴趣的朋友可以下载附件。如果你对Nutz的MVC比较熟悉,就会知道,开发方式与Nutz MVC完全一致,唯一的不同就是,业务逻辑相关的资源没有部署在WEB应用中,而是可以通过在WEB应用(框架)中进行配置加载。 一直在探索如何实现WEB应用程序的模块化开发,因为模块化开发最大的好处就是,复用方便,维护方便。
最近设计了这样一个WEB应用程序结构:
WEB应用只作为应用程序框架,不包含任何业务逻辑,应用程序框架的配置文件配置各个WEB应用程序模块的前缀URL。
配置文件类似:
Xml代码
1 <modules>
2 <module base-url="/admin" module-name="moduleA">
3 <module base-url="/" module-name="moduleB">
4 </modules>
当然,还可能会包含配置模块的一些配置文件,因为在复用时,部署在不同服务器的模块配置可能不同,比如数据库配置
显而易见,这个应用程序框架一定至少是一个MVC框架,因为它要负责请求的转发。
这样这个WEB应用程序就是完全可配置的,因为这个WEB应用程序不包含任何业务逻辑,如果没有配置模块,将无法处理任何访问请求。
包含业务逻辑的WEB应用模块应自包含响应请求的程序,和URL影射表,以及其他相关资源,如图片,等。这点有两种做法,一种是通过配置文件,一种就是通过Java注解(annotation)
既然各个模块是可以自由组合部署的,当然Jar Hell的问题是不应出现的。
所有模块的Jar程序均部署在一个统一的网络位置上,这样任何一个应用服务器只需要更改配置文件,就可以立刻改变这台应用服务器所实现的功能。
希望听听对模块化WEB开发感兴趣的朋友的想法。
关于这个结构的实践:
JIOPi提供了支持模块化的ClassLoader,既可以让程序从同一个网络位置上加载Java程序和资源文件,并解决模块间的Jar Hell问题。
MVC部分当然也是这个结构中最为关键的一个部分,因为全靠MVC框架来识别和分发请求。但目前所有MVC框架都是使用 ContextClassloader来加载相应程序,因此,这里是最麻烦的,因为要用JIOPi的ClassLoader来代替 ContextClassLoader,从而可以加载没有部署在WEB应用程序框架中的各个模块中的程序和资源。我在我的项目中先写了一个简单的MVC来 进行了实践,不过由于临时写的MVC系统比较薄弱,虽然统一位置部署和模块化部分运作正常,但也丢失了使用经典MVC框架的很多开发便利性。
另一个实验:使用Nutz的MVC
Nutz的MVC提供了一个易用但完善的MVC方案,这两天对Nutz的源码做了少量修改以整合JIOPi,并做了一个简单的WEB应用程序模 块,可以用来展示这个模块化WEB应用程序框架的部分特性,有兴趣的朋友可以下载附件。如果你对Nutz的MVC比较熟悉,就会知道,开发方式与Nutz MVC完全一致,唯一的不同就是,业务逻辑相关的资源没有部署在WEB应用中,而是可以通过在WEB应用(框架)中进行配置加载。
这里介绍2011年最热卖汽车坐垫十大品牌,淘宝网汽车坐垫,汽车坐垫价格,淘宝网汽车坐垫价格,淘宝网汽车坐垫十大品牌,,淘宝网汽车坐垫促销,淘宝网汽车坐垫排行榜。
展开阅读全文