热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入解析几种常用的Java后端开发框架组合及其应用场景

本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析SpringBoot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。

01 前言

Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这篇文章胖达就打算给大家介绍几款现阶段流行的框架组合,不管是在传统企业开发还是在互联网开发领域,这几种框架应该都是比较常用的。

02 三层架构

说到框架首先需要明确的是,在Web开发领域一般会将架构分为三个部分:表示层、持久层、业务层,之所以将整体架构分为三个层面,主要目的是让整个系统更具有条理性,通过分配任务的方式进行系统的解耦,让每一层只关心自己内部的事情,只知道下层的存在,不知道上层的存在。达到局部改变而不影响全局的目的,就比如餐馆中有服务员、厨师、收银员一样,各司其职,让系统有条不紊的运行下去。三层架构如下图所示(图中的数据访问层就是文中的持久层):
image

下面就简单介绍一下三层架构:

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框架组合

另外一个比较流行的框架组合是SSM框架,主要包括SpringMVC、Spring、Mybatis三大框架,用SpringMVC作为整体基础框架,分离MVC层级,Mybatis作为跟数据库交互的持久层框架,负责数据的访问和操作,而Spring依然作为其余两大框架的桥梁,进行数据的传递和事务等逻辑处理,下面Spring不再赘述,关于SpringMVC、Mybatis详情如下所述:

SpringMVC框架

SpringMVC和Struts2都属于表现层的框架,但它是Spring框架的一部分,这让SpringMVC有了先天的优势,它延续了Spring在配置上简单省心的特点,而且因为与Spring无缝对接,这让安全性有了很大的保障。同时SpringMVC解决了一个很大的问题就是如何降低处理业务数据的对象和显示业务数据的视图耦合性,这个问题的解决让开发变得更加的简单。

Mybatis框架

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射, 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的繁杂。它可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java对象映射成数据库中的记录。

Hibernate固然优秀,但是跟Mybatis相比,它的封装太过于死板,对一些复杂的sql,开发人员更喜欢手动的编写一些代码,而不是通过特定的HQL语言去编写,这样会间接的增加工作量,而且Mybatis更好上手,学习成本比Hibernate要低很多,但是有一点不得不承认,Hibernate的开源社区人数要碾压Mybatis的,毕竟国外很多大佬还是喜欢用Hibernate的,后期可以详细探索探索。

04 总结

无论如何,学好框架都对我们有很大的帮助,在这篇文章小编只是简单介绍了一下框架的三层架构以及两个流行的框架组合,后面的文章中我会分别对一些框架进行详细的介绍。

需要java学习路线图的私信笔者“java”领取哦!另外喜欢这篇文章的可以给笔者点个赞,关注一下,每天都会分享Java相关文章!还有不定时的福利赠送,包括整理的学习资料,面试题,源码等~~


推荐阅读
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 智能医疗,即通过先进的物联网技术和信息平台,实现患者、医护人员和医疗机构之间的高效互动。它不仅提升了医疗服务的便捷性和质量,还推动了整个医疗行业的现代化进程。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
author-avatar
捕鱼达人2602929461
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有