1.1 企业级框架技术
1.1.1 为什么学习框架技术
如何制作一份具有专业水准的PPT文档呢?一个简单的方法就是使用Microsoft PowerPoint(PPT)的模板功能,如图1.1所示。
图1.1 使用PPT模板
使用模板新建的文档已经有一个PPT的“架子”了,只需要填写必要的信息就可以了,如图1.2所示。
图1.2 使用PPT模板创建的新文档
思考:使用PPT模板制作PPT有哪些好处?
(1)不用考虑布局、排版等问题,可提高制作效率。
(2)可以专心于PPT的内容,使演讲的“质量”更有保障。
(3)新手也可以制作很专业的幻灯片演讲稿。
使用框架构建项目也是基于这样的考虑。当确定使用哪个技术框架后,就已经有了一个“半成品”,然后再填上所需内容,工作就完成了。
使用框架技术的优势如下。
(1)不用考虑公共问题,框架已经完成。
(2)专心于业务逻辑,保证核心内容的开发质量。
(3)结构统一便于学习和维护。
(4)集成了前人的经验,可以帮助新手写出稳定、性能优良且结构优美的高质量程序。
1.1.2 框架的概念
框架(Framework)是一个提供了可重用的公共结构半成品。它为构建新的应用程序提供了极大的便利。“框架”这个词最早出现在建筑领域,指在建造房屋前期构建的建筑骨架,如图1.3所示。对于应用程序来说,“框架”就是应用程序的骨架,开发者可以在这个骨架上搭建符合自己需求的应用系统。它凝结着前人的经验和智慧,使用这些框架就等于站在了巨人的肩膀上。
图1.3 建筑“框架”
Rickard Oberg(WebWork的开发者和JBoss的创始人之一)说过:“框架的强大之处不是源自它能让你做什么,而是它不能让你做什么。”Rickard强调框架另一个层面的含义:框架能使混乱的内容变得结构化。如果没有框架,一千个人将写出一千种Servlet+JavaBean+JSP的代码,而框架保证了程序结构风格的统一。从企业的角度来说,框架也降低了人员培训和软件维护的成本。框架在结构统一和创造力之间维持着一个合适的平衡。
1.1.3 主流框架的介绍
1.Spring框架
Spring框架是一个轻量级的框架,渗透了Java EE技术的方方面面。Spring框架是由于软件开发的复杂性而创建的,是一个开源框架。Spring框架的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring框架中受益。
(1)目的:解决企业应用开发的复杂性。
(2)目标:Java EE技术更容易使用,并促进良好编程习惯的养成。
(3)功能:使用基本的JavaBean代替EJB,并提供更多的企业应用功能。
(4)范围:任何Java应用。
Spring框架是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。它主要作为依赖注入容器和AOP实现存在,还提供了声明式事务、对DAO层的支持等简化开发的功能。Spring框架可以很方便地与Spring MVC、Struts 2、MyBatis、Hibernate等框架集成,其中大名鼎鼎的SSM集成框架指的就是基于Spring MVC + Spring + MyBatis的技术框架,使用这个集成框架能使应用程序更加健壮、稳固、轻巧和优雅,这也是当前流行的Java技术框架,其内容将在后续章节中介绍。
2.Spring MVC框架
Spring MVC框架属于SpringFrameWork的后续产品,已经融合在Spring Web Flow中,是结构清晰的MVC Model2的实现。Spring 框架提供了构建Web应用程序的全功能 MVC 模块,并且拥有高度的可配置性,支持多种视图技术。它还可以进行定制化开发,使用相当灵活。此外,Spring框架整合Spring MVC框架是无缝集成,这是一个高性能的架构模式,已越来越广泛地应用于互联网应用的开发中。当使用Spring框架进行Web开发时,可以选择Spring MVC框架或集成其他MVC的开发框架,如Struts 1(现在一般不用)、Struts 2(一般老项目使用)等。
3.MyBatis 框架
MyBatis框架是一个优秀的数据持久层框架,可在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。它的封装性要低于Hibernate框架,且性能优异、简单易学,因此应用较为广泛。
MyBatis框架本是Apache的一个开源项目iBatis,2010年,这个项目由Apache software foundation迁移到Google code,并且改名为“MyBatis”。2013年11月它迁移到Github。“iBatis”一词来源于“internet”和“abatis”的组合,它是一个基于Java的持久层框架,其框架包括SQL Maps和Data Access Objects(DAOs)。
4.Hibernate框架
Hibernate框架不仅是一个优秀的持久化框架,也是一个开放源代码的对象关系映射框架。它对JDBC进行了轻量级的对象封装,将POJO与数据库表建立映射关系,形成一个全自动的ORM框架。Hibernate框架可以自动生成SQL语句,且自动执行,使Java程序员可以随心所欲地使用对象编程思维来操纵数据库。Hibernate框架还可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate框架可以在应用EJB的Jave EE架构中取代CMP,以完成数据持久化的重任。Hibernate框架已经成为当前主流的数据库持久化框架,并被广泛应用。
5.Struts 2 框架
Struts 2框架以WebWork的优秀设计思想为核心,吸收Struts框架的部分优点,提供了一个更加简洁的基于MVC设计模式实现的Web应用程序框架,它本质上相当于一个Servlet。在MVC设计模式中,Struts 2框架作为控制器(Controller)来建立模型与视图的数据交互。Struts 2框架是Struts的下一代产品,是在Struts 1和WebWork技术的基础上进行合并的创新。它采用拦截器的机制来处理用户的请求,可使业务逻辑控制器与ServletAPI完全脱离开,所以也可以理解是WebWork的更新产品。Struts 2框架充分利用了其他MVC框架的经验和教训,使整个框架更加清晰和灵活。