天天看点

jfinal pk ssh ssi ssm (struts spring hibernate ibatis)

1.SSH Introduction

SSH   不是一个框架,而是多个框架(   struts+spring+hibernate   )的集成,是目前较流行的一种   Web   应用程序开源集成框架,用于构建灵活、易于扩展的多层   Web   应用程序。如下图   1   所示为   SSH   的架构图.  

Web层,就是MVC模式里面的“C”(controller)与“V”(View),负责控制业务逻辑层与页面的交互与展现,在SSH架构中,Struts充当controller,JSP充当View。

Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。

DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。

PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。 Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

1.1  Struts的优劣势

jfinal pk ssh ssi ssm (struts spring hibernate ibatis)

1.2  Spring的优劣势

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

jfinal pk ssh ssi ssm (struts spring hibernate ibatis)

1.3  Hibernate的优劣势

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

优点:

  • 1)      Hibernate 是JDBC 的轻量级的对象封装,它是一个独立的对象持久层框架。Hibernate 可以用在任何JDBC 可以使用的场合,例如Java 应用程序的数据库访问代码,DAO 接口的实现类,甚至可以是BMP 里面的访问数据库的代码。
  • 2)      Hibernate 是一个和JDBC 密切关联的框架,所以Hibernate 的兼容性和JDBC 驱动,和数据库都有一定的关系,但是和使用它的Java 程序,和App Server 没有任何关系,也不存在兼容性问题。
  • 3)      Hibernate 不能用来直接和Entity Bean 做对比,只有放在整个J2EE 项目的框架中才能比较。并且即使是放在软件整体框架中来看,Hibernate 也是做为JDBC 的替代者出现的,而不是Entity Bean 的替代者出现的,
  • 4)      Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
  • 5)      Hibernate 可以应用在任何使用JDBC 的场合。
  • 6)      Hibernate 使用Java 反射机制而不是字节码增强程序来实现透明性。
  • 7)      Hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。
  • 8)      它支持各种关系数据库,从一对一到多对多的各种复杂关系。

缺点:

  • 1)      它限制所使用的对象模型。(例如,一个持久性类不能映射到多个表)。
  • 2)      较JDBC,Hibernate更消耗内存。
  • 3)      对于小型项目,Hibernate开发效率低。

2.jFinal  Introduction

jFinal的相关介绍,请参阅http://code.google.com/p/jfinal/

3  .  The Comparison

不可否认,SSH与jFinal都是非常优秀的架构,两者都有各自的优点,如何进行取舍取决于项目与项目组成员的实际情况!