01 前言
Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这篇文章胖达就打算给大家介绍几款现阶段流行的框架组合,不管是在传统企业开发还是在互联网开发领域,这几种框架应该都是比较常用的。
02 三层架构
说到框架首先需要明确的是,在Web开发领域一般会将架构分为三个部分:表示层、持久层、业务层,之所以将整体架构分为三个层面,主要目的是让整个系统更具有条理性,通过分配任务的方式进行系统的解耦,让每一层只关心自己内部的事情,只知道下层的存在,不知道上层的存在。达到局部改变而不影响全局的目的,就比如餐馆中有服务员、厨师、收银员一样,各司其职,让系统有条不紊的运行下去。三层架构如下图所示(图中的数据访问层就是文中的持久层):
下面就简单介绍一下三层架构:
1.表示层
表示层其实就是用户能够看到的界面显示层,但是它的职责并不仅仅是显示界面那么简单,而是需要完成三件事情:
- 从界面中取得数据跟后台服务器交互
- 跟后台交互后进行数据绑定
- 将绑定的数据呈现在页面中
一般来说,这一层的设计会采用MVC的模式,M称为模型也就是实体类,用于数据的封装和数据的传输;V也就是页面组件,用于数据的展示;C为控制也就是流程事件,用于流程的控制。
2.业务层
这一层的功能主要是实现一些具体问题的操作,因为它是表示层和持久层之间沟通的桥梁,主要负责数据的传递和处理。
在日常的代码开发中一般对应着逻辑Service层,对于一些复杂的逻辑判断和涉及到数据库的数据验证都需要在这一层做出处理,同时根据传入的值返回用户想得到的值,或者处理相关的操作。
3.持久层
也称为数据访问层,顾名思义,这一层其实就是跟数据库直接打交道的层面,通过连接数据库,根据传入的值对数据库进行增删改查。
03 框架组合
针对上面架构的每一个层面,目前Web开发领域内都有一些优秀的框架,例如表示层有Structs2、SpringMVC等,持久层有Hibernate、Mybatis等,还有业务层有Spring框架,但是严格来说,Spring是一个整合框架,业务层面在每一个公司每一个项目都会根据自己的需求做不同的处理。在项目的开发中,有这样几种使用非常广泛的框架组合:
1.SSH框架组合
SSH框架组合主要包括Struts 、Spring、Hibernate三大框架,用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,同时用Spring来管理Struts和Hibernate,框架具体解释如下:
- Struts框架
Struts框架是一个基于MVC设计模式的Web应用框架,它本质上相当于一个Servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
它包含Struts1和Struts2两个版本,两者的相差其实还是挺大的,Struts2并不是对Struts1的更新,而是充分发挥了Struts1和WebWork这两种技术的优势,它抛弃了原来Struts1的缺点,使得Web开发变得更加容易。
- Spring框架 学习基础的时候大家应该都知道,最传统的Java Web应用程序是采用JSP、Servlet、Javabean来实现的,这种模式实现了最基本的MVC分层,使得程序结构有负责前台展示的 JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean,但是这种结构存在问题如JSP页面中需要使用符号嵌入很多的 Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等。 Spring框架的出现就解决了这个问题,通过AOP和IOC两大特性的加持,把所有类之间的这种依赖关系完全通过配置文件的方式替代了,同时将实体bean很好的管理到了容器中,使得耦合性大大降低,复用性大大提高。
- Hibernate框架 传统的持久层框架都是采用Java JDBC的连接方式进行数据库的访问和操作,需要人为的编写大量的SQL或者代码,同时还需要将获得的数据进行转换或封装后往外传,其实对于大项目而言这是一个非常烦琐的过程。 Hibernate框架是一个半自动化的持久层框架,可以减少大量的SQL、代码编写工作,省掉很大部分的工作量,在这个框架中,当我们需要相关操作时,不用再关注数据库表也不用再去一行行的查询数据库,只需要通过持久化一个类的方式就可以完成增删改查的功能,因为框架的内部已经实现了很多对数据库的操作方法,我们只需要调用即可,做的最多的工作都在持久化类上。
2.SSM框架组合
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/25647.html