实验一框架选择及其原因

       实验一 框架选择及其原因

     软件体系结构实验一我选择S2SH来开发应用系统。我来讲解一下 S2Sh的优点。

   

 Struts

     Struts2 是一个优秀的开源项目 ,能使开发者了解到内部的机制, Struts开放源码框架的创建是为了使开发者在构建基于Java ServletJavaServer PagesJSP)技术的Web应用时更加容易。Struts框架为开放者提供了一个统一的标准框架,通过使用Struts作为基础,开发者能够更专注于应用程序的商业逻辑。Struts框架本身是使用Java ServletJavaServer Pages技术的一种Model-View-ControllerMVC)实现.

Struts2 优点有以下方面

     1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现

      2. 有丰富的tag可以用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。 

     3. 页面导航.页面导航将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

     4. 提供Exception处理机制 . 

5. 数据库链接池管理     

6. 支持I18N

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSPWeb应用中使用,最具革命意义的是,Hibernate可以在应用EJBJ2EE架构中取代CMP,完成数据持久化的重任。 

大多数开发机构经常采取创建各自独立的数据持久层。一旦底层的数据结构发生改变,那么修改应用的其余部分使之适应这种改变的代价将是十分巨大的。Hibernate适时的填补了这一空白,它为Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate是个轻量级的持久性框架,功能却非常丰富。

优点: 

  1.Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性。 

  2.Hibernate 的性能非常好,因为它是个轻量级框架。 映射的灵活性很出色。 

  3.它支持各种关系数据库,从一对一到多对多的各种复杂关系。

Spring

它基于IoCInversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的 接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment

优点:

  1. Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE API特制的frameworkSpring致力于解决剩下的问题。 

2. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。 

3. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性。Inversion of Control的使用(在下面讨论)帮助完成了这种简化。

4. 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。 

5. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring 

6. 使用Spring构建的应用程序易于单元测试。 

7. Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOslocal EJBs来实现业务接口,却不会影响调用代码。 

8. Spring帮助你解决许多问题而无需使用EJBSpring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你仅仅需要与   单个数据库打交道,甚至不需要一个JTA实现。 

9. Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。 

Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。 缺点:使用人数不多、jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器 

    

原文地址:https://www.cnblogs.com/qerror404/p/5498882.html