分析Java FrameWork的技巧
最近在做的一个项目,使用的一个Java FrameWork感觉上对于大型项目非常适用,现在就本人的一点使用经验和几个月来对这个FrameWork的了解,概括的向大家介绍一下这个FrameWork。
整个FrameWork使用J2EE技术,其实核心思想还是MVC,目前来说使用MVC思想的FrameWork非常多,最流行的应该是Apache公司推出的Struts,但是Struts整体只分三层:View、Controller、Model,这是完全符合MVC思想的一个FrameWork。其实Struts使用到现在反映很好,许多大中型项目都在用它,譬如一些大型的ERP项目也在使用它,但是我个人觉得Struts对于整个应用程序体系来说还不是很清晰,也就是说虽然它使用MVC思想,也明确了MVC的一些体系结构,实现了View、Controller、Model这三层,但是在一些具体的细节上还是比较模糊的,就拿Struts的Action来说,Action里面包含了太多的业务逻辑,使得整个应用程序思路不是很清晰。那有没有更清晰的FrameWork能够弥补这个缺陷呢?
我们可以把View、Controller、Model这三层分的更细,分成五层,如下图:
图1HP FrameWork的五层结构
1、 Presentation这一层主要是负责View这一层,也就是说这一层主要是和客户打交道,所有的Client管理都在这一层。(关于详细分析见后)
2、 Application这一层主要分成两层:HtmlAction、EJBAction,HtmlAction是简单的处理Client传递过来的数据,然后把处理后的数据通过一个Event包装传递给EJBAction,EJBAction再调用ServiceBean的方法处理业务逻辑,然后把返回Client的数据再原路返回到Client。在这一层要抛出很多的Exception,保证传到ServiceBean里的数据是正确的。(关于详细分析见后)
3、 Services 这一层包含了整个应用程序的业务逻辑,也就是说所有的数据从EJBAction传递过来后,只是正确的数据,但是否是有效的数据,还得在ServiceBean里进行处理,ServiceBean对业务数据的处理后若要对数据库存储数据则要调用EntityBean,若只是查询数据则调用DAO方法。(关于详细分析见后)
4、 Domain这一层主要是EntityBean。(关于详细分析见后)
5、 Persistence 这一层是主要与数据库进行交互的一层,所有的数据增删改或存储过程都在这一层实现。(关于详细分析见后)
1.1 Presentation层
这一层是view层,主要使用了JSTL、JavaScript、Html等技术,其实对于B/S结构的应用程序开发,Client开发使用这三种语言就绰绰有余了,足以应付所有的需求。
JSTL是Sun公司开发的标签库,比起在JSP页面中使用Java语言,JSTL使得程序简单可读性增强,这对应用程序的维护提供了方便性。
在Jar包库里必须引入jstl.jar包
在程序中我们只要引入上面那两条标签库就可以使JSP支持JSTL标签库了。
在程序中WEB模块的目录结构如图所示:
所有的JSP页面按模块放好,所有的web模块所需要的东西都在docroot目录下:
很多的XML配置文件都放在docroot/web-inf目录下,对于客户端的一个JSP页面就是一个Screen,必须在screendefinitions_en_US.xml文件中,所有的*.do跳转都必须定义在Mapping.xml文件里具体的定义见下图。
这是定义的Screen文件:
定义的*.do文件:
所有的WEB层的需要的东西,如上所说,下面分析Application层。
本文地址:http://www.45fan.com/dnjc/68197.html