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