JAVA SSH和JFinal框架 有什么区别?(优缺点)

作者&投稿:方沿 (若有异议请与网页底部的电邮联系)
浅谈java框架jfinal和nutz的区别~

1分钟注册,结交更多好友,享用更多功能,轻松玩转酷辣虫!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
作为程序开发者应该大多数都知道ssh(spring+struts+hibernate)框架,有的公司可能也会用sshi(spring+struts+hibernate+ibatis)或者sshm(spring+struts+hibernate+mybatis)框
架,但是可能知道jfinal跟nutz框架的可能就不是很多了,尤其对于刚培训出来,或者刚工作几年的初级程序员,当然也包含一些对技术不是太喜欢钻研的中级程序员,今天就借此机会来这
献丑一下给大家唠叨唠叨java的jfinal框架和nutz框架。
jfinal框架 :
JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。 在拥有Java语言所有优势的同时再拥有ruby
、python、php等动态语言的开发效率
JFinal有如下主要特点:
1.MVC架构,设计精巧,使用简单
2.遵循COC原则,零配置,无xml
3.独创Db + Record模式,灵活便利
4.ActiveRecord支持,使数据库开发极致快速
5.自动加载修改后的java文件,开发过程中无需重启web server
6.AOP支持,拦截器配置灵活,功能强大
7.Plugin体系结构,扩展性强
8.多视图支持,支持FreeMarker、JSP、Velocity
9.强大的Validator后端校验功能
10.功能齐全,拥有struts2的绝大部分功能
11.体积小仅248K,且无第三方依赖
nutz框架 :
Nutz是对于Java程序员来说,除SSH之外的另一个选择。当然,它是开源的,并且是完全免费的。同时也是商业友好的(Licensed under the Apache License, Version 2.0)。
轻 -- 当前最新版,整个jar文件共910kB -- 针对JDBC的薄封装,无缓存。
全 -- 提供了Dao(ORM, SQL管理),Ioc, Aop, Mvc, Json解析等必要功能。
活 -- 各个部分可以独立使用,比如在Spring里采用Nutz.Dao,又比如在Nutz.Ioc里使用Hibernate等。
整 -- 它所有功能均不依赖第三方jar文件。这就意味着:如果一个Web应用,你在WEB-INF/lib下只需要放置一个nutz.jar就够了。当然,你要使用其它的连接池、数据库驱动、打印PDF支持
等功能,还需要自行添置jar包 !

是的,jfinal是一个轻量级的框架,jar包小,配置少,十分容易上手。但是与ssh相比可能网上的资料相对比较少,遇到问题不一定容易查到解决方案。

1.SSHIntroduction
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的优劣势

1.2 Spring的优劣势

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

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程序,和AppServer 没有任何关系,也不存在兼容性问题。
3)

Hibernate不能用来直接和EntityBean 做对比,只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看,Hibernate也是做为JDBC的替代者出现的,而不是EntityBean 的替代者出现的,
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.TheComparison

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

注:*表示所在项具有相对优势
原文地址:http://blog.csdn.net/daijin888888/article/details/50800887