Hibernate 系列 01 - 框架技术 (介绍Hibernate框架的发展由来)
引导目录:
本篇导航:

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技术框架。
Hibernate 系列 01 - 框架技术 (介绍Hibernate框架的发展由来)的更多相关文章
- python nose测试框架全面介绍六--框架函数别名
之前python nose测试框架全面介绍二中介绍了nose框架的基本构成,但在实际应该中我们也会到setup_function等一系列的名字,查看管网后,我们罗列下nose框架中函数的别名 1.pa ...
- Hibernate 系列 学习笔记 目录 (持续更新...)
前言: 最近也在学习Hibernate,遇到的问题差不多都解决了,顺便把学习过程遇到的问题和查找的资料文档都整理了一下分享出来,也算是能帮助更多的朋友们了. 最开始使用的是经典的MyEclipse,后 ...
- [Hibernate系列—] 3. 映射文件和使用SchemaExport制作自己主动Schema
自己定义映射文件 这里的映射文件指的是相应到数据库表的xml 的定义文件. 相应的每一个数据库表栏位, 能够定义的属性有: 属性名 类型 Description length number 栏位的长度 ...
- 爬虫--Scrapy框架课程介绍
Scrapy框架课程介绍: 框架的简介和基础使用 持久化存储 代理和cookie 日志等级和请求传参 CrawlSpider 基于redis的分布式爬虫 一scrapy框架的简介和基础使用 a) ...
- 接口自动化测试框架 (一) :APIAutoTest框架
前言 随着测试技术的发展,接口自动化测试逐渐成为各大公司投入产出比最高的测试技术.介入时间早,执行效率高,稳定性高的优点,让越来越多的公司引入接口自动化测试. 框架简介 APIAutoTest是处理A ...
- Hibernate初探之单表映射——Hibernate概念及插件的安装
什么是ORM ORM(Object/Relationship Mapping):对象/关系映射 为什么要有ORM? 利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编 ...
- 使用Hibernate框架技术时,对项目进行的配置
1.在需要使用Hibernate框架技术的项目上单击鼠标右键,在弹出的菜单中选择MyEclipse-->Add Hibernate Capabilities,打开Add Hibernate Ca ...
- 【SSH框架】之Hibernate系列一
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Hibernate框架概述 (1).什么是HibernateHibernate是一个开放源代 ...
- 初始Hibernate框架技术
hibernate: 定义:ORM:Object Relational Mapping 对象 关系 映射 使用hibernate时几个必要的: 1.实体类 2.映射文件(类 -数据库表,属性-字段) ...
随机推荐
- JRebel Windows RegCreateKeyEx(...) returned error code 5.
作为一个JRebel的深度用户,在win10下用JRebel的eclipse插件使用的时候遇到了如下问题: java.util.prefs.WindowsPreferences <init> ...
- ArtifactTransferException: Failure to transfer org.apache.openejb:javaee-api:jar:5.0-1
最近在myeclipse上创建maven类型的web项目的时候,出现了一个错误. ArtifactTransferException: Failure to transfer org.apache.o ...
- MySQL触发器-条件触发器语法
文章为作者原创,未经许可,禁止转载. -Sun Yat-sen University 冯兴伟 实验4 触发器 )实验目的 掌握数据库触发器的设计和使用方法 )实验内容和要求 定义BEFORE触发 ...
- 【Win 10应用开发】分阶段进行数据绑定
使用x:Bind扩展标记进行数据绑定,是在编译阶段完成,至于说性能优化方面,大概主要是优化CPU资源的使用,因为免去了运行阶段进行绑定的过程.当然,使用这个标记仅仅是绑定上的优化,并不包括数据源.数据 ...
- Apply Newton Method to Find Extrema in OPEN CASCADE
Apply Newton Method to Find Extrema in OPEN CASCADE eryar@163.com Abstract. In calculus, Newton’s me ...
- 监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile
大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们 无法控制sql的生成策略,所以必须不要让自 ...
- php内核分析(四)-do_cli
这里阅读的php版本为PHP-7.1.0 RC3,阅读代码的平台为linux # main 把剩下的代码增加了下注释全部贴出来了(这个是简化后的main函数,去掉了一些无关紧要的代码段): int m ...
- 绑定一个值给radio
在ASP.NET MVC程序中,需要给一个radio list表绑定一个值. 下面是Insus.NET实现的方法: 使用foreach来循环radio每一个选项,如果值与选项的值相同,那这个选项为选中 ...
- 【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案
三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是 ...
- string.empty , "" , null 以及性能的比较
一:这种结论,个人觉得仍然存疑 http://www.cnblogs.com/wangshuai901/archive/2012/05/06/2485657.html 1.null null 关 ...