引导目录:

  Hibernate 系列教程 目录

本篇导航:

  1. 为什么学习框架技术
  2. 框架的概念
  3. 主流框架的介绍

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框架的发展由来)的更多相关文章

  1. python nose测试框架全面介绍六--框架函数别名

    之前python nose测试框架全面介绍二中介绍了nose框架的基本构成,但在实际应该中我们也会到setup_function等一系列的名字,查看管网后,我们罗列下nose框架中函数的别名 1.pa ...

  2. Hibernate 系列 学习笔记 目录 (持续更新...)

    前言: 最近也在学习Hibernate,遇到的问题差不多都解决了,顺便把学习过程遇到的问题和查找的资料文档都整理了一下分享出来,也算是能帮助更多的朋友们了. 最开始使用的是经典的MyEclipse,后 ...

  3. [Hibernate系列—] 3. 映射文件和使用SchemaExport制作自己主动Schema

    自己定义映射文件 这里的映射文件指的是相应到数据库表的xml 的定义文件. 相应的每一个数据库表栏位, 能够定义的属性有: 属性名 类型 Description length number 栏位的长度 ...

  4. 爬虫--Scrapy框架课程介绍

    Scrapy框架课程介绍: 框架的简介和基础使用 持久化存储 代理和cookie 日志等级和请求传参 CrawlSpider 基于redis的分布式爬虫 一scrapy框架的简介和基础使用 a)    ...

  5. 接口自动化测试框架 (一) :APIAutoTest框架

    前言 随着测试技术的发展,接口自动化测试逐渐成为各大公司投入产出比最高的测试技术.介入时间早,执行效率高,稳定性高的优点,让越来越多的公司引入接口自动化测试. 框架简介 APIAutoTest是处理A ...

  6. Hibernate初探之单表映射——Hibernate概念及插件的安装

    什么是ORM ORM(Object/Relationship Mapping):对象/关系映射 为什么要有ORM? 利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编 ...

  7. 使用Hibernate框架技术时,对项目进行的配置

    1.在需要使用Hibernate框架技术的项目上单击鼠标右键,在弹出的菜单中选择MyEclipse-->Add Hibernate Capabilities,打开Add Hibernate Ca ...

  8. 【SSH框架】之Hibernate系列一

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Hibernate框架概述 (1).什么是HibernateHibernate是一个开放源代 ...

  9. 初始Hibernate框架技术

    hibernate: 定义:ORM:Object Relational Mapping 对象 关系 映射 使用hibernate时几个必要的: 1.实体类 2.映射文件(类  -数据库表,属性-字段) ...

随机推荐

  1. Redux初见

    说到redux可能我们都先知道了react,但我发现,关于react相关的学习资料很多,也有各种各样的种类,但是关于redux简单易懂的资料却比较少. 这里记录一下自己的学习理解,希望可以简洁易懂,入 ...

  2. ASP.NET Web API 过滤器创建、执行过程(二)

    ASP.NET Web API 过滤器创建.执行过程(二) 前言 前面一篇中讲解了过滤器执行之前的创建,通过实现IFilterProvider注册到当前的HttpConfiguration里的服务容器 ...

  3. div里嵌套了img 底部会出现白边

    因为img默认是按基线(baseline)对齐的.对比一下图片和右边的p, q, y等字母,你会发现这三个字母的“小尾巴”和图片下方的空白一样高.下面这张图中的黑线就是那条基线. 要去掉空格可以使用v ...

  4. 详细分析Android viewpager 无限循环滚动图片

    由于最近在忙于项目,就没时间更新博客了,于是趁着周日在房间把最近的在项目中遇到的技术总结下.最近在项目中要做一个在viewpager无限滚动图片的需求,其实百度一下有好多的例子,但是大部分虽然实现了, ...

  5. three.js笔记

    /*** 场景(scene) ***/ var scene = new THREE.Scene(); // 创建场景 scene.add(x); // 插入场景 /*** 相机(camera) *** ...

  6. Python(六)面向对象、异常处理、反射、单例模式

    本章内容: 创建类和对象 面向对象三大特性(封装.继承.多态) 类的成员(字段.方法.属性) 类成员的修饰符(公有.私有) 类的特殊成员 isinstance(obj, cls) & issu ...

  7. 自己封装了一个EF的上下文类.,分享一下,顺便求大神指点

    using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...

  8. 工作中遇到的一个多线程下导致RCW无法释放的问题

    最近有个同事在调用一个类库中的方法时遇到了一个问题,异常信息如下: 尝试释放正在使用的RCW,活动线程或其他线程上正在使用该 RCW,释放正在使用的 RCW 的尝试会导致损坏或数据丢失. 该方法中对w ...

  9. 听歌识曲--用python实现一个音乐检索器

    听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...

  10. Linux系统修改PATH环境变量方法

    在Linux安装一些软件通常要添加路径环境变量PATH.PATH环境变量通俗的讲就是把程序的路径"备案"到系统中,这样执行这些程序时就不需要输入完整路径,直接在bash输入程序名就 ...