博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate 系列 01 - 框架技术 (介绍Hibernate框架的发展由来)
阅读量:5937 次
发布时间:2019-06-19

本文共 1822 字,大约阅读时间需要 6 分钟。

 

引导目录:

  

 

 

本篇导航:

 

 

1.为什么学习框架技术

如何制作一份看上去具有专业水准的PPT文档呢?一个简单的方法就是使用Microsoft PowerPoint的模板功能,如图:

 

使用模板新建出来的文档已经有了一个PPT的“架子”,我们字需要把必要的信息像“填空题”一样填写进去就可以了,如图:

 

思考一下,使用PPT模板制作PPT有那些好处?

 

使用PPT模板制作文档的有点如下:

(1)不用考虑布局、排版等问题,提高了效率;

(2)可以专心于PPT的内容上,使演讲“质量”更有保障;

(3)新手也可以制作很专业的幻灯片演讲稿。

 

使用框架构建项目也是基于这样的考虑。当确定使用哪个技术框架后,就已经有一个“半成品”,然后在这个半成品里填上内容,工作就完成了。

 

框架技术的优势如下:

(1)不用再考虑公共问题,框架已经帮我们做好了;

(2)可以赚信誉业务逻辑,保证核心业务逻辑的开发质量;

(3)结构统一,便于学习和维护;

(4)框架中集成了前人的经验,可以帮助新手写出稳定、性能优良而且结构优美的高质量程序。

 

2.框架的概念

框架(Framework)是一个提供了可重用的公共结构的半成品。它为我们构建新的应用程序提供了极大的便利。

一方面提供了可以拿来就用的工具,更重要的是,提供了可重用的设计。

框架这个词最早出现在再建筑领域,指的是在建造房屋前期构建的建筑骨架如图:

 

对应用程序来说,“框架”就是应用程序的骨架,开发者可以在这个骨架上加上自己的东西,搭建符合自己需求的应用系统。

框架中凝结着前人的经验和知会,使用框架,我们就站在了巨人的肩膀上。

 

Rickard Oberg(WebWork的作者和JBoss的创始人之一)说过:“框架的强大之处不是源自它能让你做什么,而是它不能让你做什么。”

Rickard强调了框架另一个层面含义:框架使混乱的东西变得结构化。

莎士比亚说:“一个千人眼中有一千个哈姆雷特。”同样,如果没有框架的话,一千人将写出一千种Servlet+JavaBean+JSP的代码,而框架保证了程序结构风格统一。

 

从企业的角度来说,降低了培训成本和软件的维护成本。框架在结构统一和创造力之间维持着一个合适的平衡。

 

3. 主流框架的介绍

  3.1 Struts框架

  Struts是最早的Java开源框架之一,现有的大多数JavaEE Web应用程序都是基于Struts框架构建的。

  Struts是MVC设计模式的一个优秀实现,它通过采用Java Servlet/JSP技术,实现了基于JavaEE Web应用的MVC设计模式的应用框架,是MVC设计模式的一个经典产品。

 

  3.2 Struts2框架

  Struts2以WebWork优秀的设计思想为核心,吸收了struts框架的部分优点,提供了一个更加整洁的基于MVC设计模式实现的Web应用程序框架。

  它引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器,减少或者消除配置文件,贯穿整个框架的强大表达式语言,支持可变更和可重用的基于MVC模式的标签API等。

  Struts2充分李永乐从其他MVC框架学到的经验和教训,使整个框架更清晰、更加灵活。

 

  3.3 Hibernate框架

  Hibernate是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或从数据库中读取数据并封装到对象的工作。

  Hibernate通过简单配置和编码即可替代JDBC繁琐的程序代码。

  Hibernate已经成为当前主流的数据库持久化框架,被广泛应用。

 

  3.4 Spring框架

  Spring也是一个开源框架。它的目标是使现有的JavaEE技术更容易使用和促进良好的编程习惯。

  它是一个轻量级的框架,渗透了JavaEE技术的方方面面。它主要作为依赖注入容器和AOP实现存在,还提供了声明式事务、对AOP层的支持等简化开发的功能。

  Spring还可以很方便的与Struts、Struts2、Hibernate等框架集成。

  大名鼎鼎的SSH集成框架指的就是Struts/Struts2+Spring+Hibernate的技术框架。

  使用这个集成框架将使我们的应用程序更加健壮、稳固、轻巧和优雅。这也是当前最流行的Java技术框架。

 

【来自:张董'Blogs:,转载请注明出处。】

亲们。码字不容易,觉得不错的话记得点赞哦。。

你可能感兴趣的文章
[Django学习] Django基础(6)_Field lookups
查看>>
find 命令练习
查看>>
Spring第一部分
查看>>
nova image-list 和 glance image-list 有什么区别
查看>>
导航栏4种效果---原生js
查看>>
同源策略引发对跨域jsonp跨域的理解
查看>>
PAT1138 Postorder Traversal(树的遍历)
查看>>
I.MX6 ifconfig: SIOCSIFHWADDR: Cannot assign requested address
查看>>
CAS与MVC集成下的“循环重定向”分析
查看>>
稀疏向量的一些内容
查看>>
使用grunt实现web自动化
查看>>
事件委托(代理)
查看>>
使用JavaScript获取CSS伪元素属性
查看>>
正则化
查看>>
javascript弹窗
查看>>
结对编程项目作业2-结对编项目设计文档
查看>>
百度地图实现思路--------未实践------未验证
查看>>
final域的内存语义
查看>>
C++链接两个cpp 文件
查看>>
Commons DbUtils: JDBC Utility Component
查看>>