会计考友 发表于 2012-8-4 12:37:27

JAVA基础:JavaEE开发四大常用框架说明

我们对Java EE的框架有过良多介绍, 本文将对Java EE中常用的四个框架做一下系统的归纳,但愿巨匠喜欢。
    Struts
    Struts是一个基于Sun Java EE平台的MVC框架,主若是采用Servlet和JSP手艺来实现的。
    Struts框架可分为以下四个首要部门,其中三个就和MVC模式慎密相关:
    1、模子 (Model),素质上来耸ё仝Struts中Model是一个Action类(这个会在后面具体谈判),开发者经由过程其实现商业逻辑,同时用户请求经由过程节制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的设置装备摆设信息的。
    2、视图(View),View是由与节制器Servlet配合工作的一整套JSP定制标签库组成,操作她们我们可以快速成立应用系统的界面。
    3、节制器(Controller),素质上是一个Servlet,将客户端请求转发到响应的Action类。
    4、一堆用来做XML文件解析的工具包,Struts是用XML来描述若何自动发生一些JavaBean的属性的,此外Struts还操作XML来描述在国际化应用中的用户提醒信息的(这样一来就实现了应用系统的多说话撑持)。
    Spring
    Spring是轻量级的Java EE应用轨范框架。
    Spring的焦点是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的方针是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以自力,也可以使用其它的框架方案加以替代,Spring但愿供给one-stop shop的框架整合方案 。
    Spring不会特別去提出一些子框架来与现有的OpenSource框架竞争,除非它感受所提出的框架夠新夠好,例如Spring有自己的 MVC框架方案,因为它感受现有的MVC方案有良多可以改良的处所,但它不强迫您使用它供给的方案,您可以选用您所但愿的框架来庖代其子框架,例如您仍可以在Spring中整合您的Struts框架 。
    Spring的焦点概念是IoC,IoC的抽象概念是「依靠关系的转移」,像是「高层模组不应该依靠低层模组,而是模组都必需依靠于抽象」是 IoC的一种默示,「实现必需依靠抽象,而不是抽象依靠实现」也是IoC的一种默示,「应用轨范不应依靠于容器,而是容器处事于应用轨范」也是IoC的一种默示。
    Spring的架构性的益处
    Spring能有用地组织你的中心层对象,无论你是否选择使用了EJB。如不美观你仅仅使用了Struts或其他的包含了Java EE特有APIs的framework,你会发现Spring关注了遗留下的问题。
    Spring能消弭在良多工程上对Singleton的过多使用。按照我的经验,这是一个首要的问题,它削减了系统的可测试性和面向对象特征。
    Spring 能消弭使用各类各样名目的属性定制文件的需要,在整个应用和工程中,可经由过程一种一致的体例来进行设置装备摆设。曾经感应迷惑,一个特定类要查找迷幻般的属性关头字或系统属性,为此不得不读Javadoc甚至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置节制的使用(不才面谈判)辅佐完成这种简化。Spring能经由过程接口而不是类促进好的编程习惯,削减编程价钱到几乎为零。
    Spring被设计为让使用它建树的应用尽可能少的依靠于他的APIs。在Spring应用中的大大都营业对象没有依靠于Spring。
    使用Spring构建的应用轨范易于单元测试。
    Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现营业接口,却不会影响挪用代码。
    Spring辅佐你解决良多问题而无需使用EJB。Spring能供给一种EJB的替代物,它们适于良多web应用。例如,Spring能使用AOP供给声明性事务而不经由过程使用EJB容器,如不美观你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。
    Spring为数据存取供给了一致的框架,非论是使用JDBC或O/R mapping产物(如Hibernate)。
    Spring确实使你能经由过程最简单可行的解决法子解决你的问题。这些特征是有很大价值的。
    Spring能做什么?
    Spring供给良多功能,在此我将快速地依次展示其各个首要方面。
    使命描述:
    首先,让我们明晰Spring规模。尽管Spring笼盖了良多方面,但我们已经有清嚣张的概念,它什么应该涉及和什么不应该涉及。
    Spring的首要目的是使Java EE易用和促进好编程习惯。
    Spring 不从头开发已有的工具。是以,在Spring中你将发现没有日志记实的包,没有毗连池,没有分布事务调剂。这些均有开源项目供给(例如 Commons Logging 用来做所有的日志输出,或Commons DBCP用来作数据毗连池),或由你的应用轨范处事器供给。因为同样的的原因,我们没有供给O/R mapping层,对此,已有有好的解决法子如Hibernate和JDO。
    Spring的方针是使已存在的手艺加倍易用。例如,尽管我们没有底层事务协调措置,但我们供给了一个抽象层笼盖了JTA或任何其他的事务策略。
    Spring没有直接和其他的开源项目竞争,除非我们感应我们能供给新的一些工具。例如,象良多开发人员,我们从来没有为Struts欢快过,而且感应在MVC web framework中还有改良的余地。在某些规模,例如轻量级的 IoC容器和AOP框架,Spring有直接的竞争,可是在这些规模还没有已经较为风行的解决方案。(Spring在这些区域是开路先锋。)
页: [1]
查看完整版本: JAVA基础:JavaEE开发四大常用框架说明