Javaweb之Web后端开发总结的详细解析

4. Web后端开发总结

到此基于SpringBoot进行web后端开发的相关知识我们已经学习完毕了。下面我们一起针对这段web课程做一个总结。

我们来回顾一下关于web后端开发,我们都学习了哪些内容,以及每一块知识,具体是属于哪个框架的。

web后端开发现在基本上都是基于标准的三层架构进行开发的,在三层架构当中,Controller控制器层负责接收请求响应数据,Service业务层负责具体的业务逻辑处理,而Dao数据访问层也叫持久层,就是用来处理数据访问操作的,来完成数据库当中数据的增删改查操作。

在三层架构当中,前端发起请求首先会到达Controller(不进行逻辑处理),然后Controller会直接调用Service 进行逻辑处理, Service再调用Dao完成数据访问操作。

如果我们在执行具体的业务处理之前,需要去做一些通用的业务处理,比如:我们要进行统一的登录校验,我们要进行统一的字符编码等这些操作时,我们就可以借助于Javaweb当中三大组件之一的过滤器Filter或者是Spring当中提供的拦截器Interceptor来实现。

而为了实现三层架构层与层之间的解耦,我们学习了Spring框架当中的第一大核心:IOC控制反转与DI依赖注入。

所谓控制反转,指的是将对象创建的控制权由应用程序自身交给外部容器,这个容器就是我们常说的IOC容器或Spring容器。

而DI依赖注入指的是容器为程序提供运行时所需要的资源。

除了IOC与DI我们还讲到了AOP面向切面编程,还有Spring中的事务管理、全局异常处理器,以及传递会话技术Cookie、Session以及新的会话跟踪解决方案JWT令牌,阿里云OSS对象存储服务,以及通过Mybatis持久层架构操作数据库等技术。

我们在学习这些web后端开发技术的时候,我们都是基于主流的SpringBoot进行整合使用的。而SpringBoot又是用来简化开发,提高开发效率的。像过滤器、拦截器、IOC、DI、AOP、事务管理等这些技术到底是哪个框架提供的核心功能?

Filter过滤器、Cookie、 Session这些都是传统的JavaWeb提供的技术。

JWT令牌、阿里云OSS对象存储服务,是现在企业项目中常见的一些解决方案。

IOC控制反转、DI依赖注入、AOP面向切面编程、事务管理、全局异常处理、拦截器等,这些技术都是 Spring Framework框架当中提供的核心功能。

Mybatis就是一个持久层的框架,是用来操作数据库的。

在Spring框架的生态中,对web程序开发提供了很好的支持,如:全局异常处理器、拦截器这些都是Spring框架中web开发模块所提供的功能,而Spring框架的web开发模块,我们也称为:SpringMVC

SpringMVC不是一个单独的框架,它是Spring框架的一部分,是Spring框架中的web开发模块,是用来简化原始的Servlet程序开发的。

外界俗称的SSM,就是由:SpringMVC、Spring Framework、Mybatis三块组成。

基于传统的SSM框架进行整合开发项目会比较繁琐,而且效率也比较低,所以在现在的企业项目开发当中,基本上都是直接基于SpringBoot整合SSM进行项目开发的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nyist_acm 个人积分赛1(部分题解会补充)

Mirrored String II 看到题解说是马拉车算法,我赛时并没想到(好吧其实我是比赛完才知道有马拉车这个算法) 因为字符串的长度只有1000,直接暴力跑其实就可以了,但是要注意的是;回文串有俩种形式&#xff0c…

FreeMarker的原理

FreeMarker是一个Java库,用于生成文本输出(如HTML网页、电子邮件、配置文件、源代码等),基于模板和传递给模板的数据。它通常被用作Web应用程序的视图层,以生成动态HTML内容。FreeMarker的设计理念是将页面设计&#x…

Jenkins中构建vue项目过程中vite进程被终止(kill),导致vue项目构建失败

jenkins的部分构建日志如下: [33mThe CJS build of Vites Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.[39m 16:37:44 [36mvite v5.0.5 [32mbuilding for production...[36m[39m …

Python学习DAY12_网络应用

网络应用 发送电子邮件 即使在通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的,而这些任…

Java必须掌握的多态的优势和弊端(含面试大厂题含源码)

在面试中,了解一个概念的优势和弊端可以帮助面试官判断应聘者对该概念的深入理解程度以及能否在实际开发中合理运用。下面是一个围绕Java多态优势和弊端的面试题,旨在评估应聘者对多态在实际编程中应用的理解。 面试题: Java多态的优势和弊端 请解释Ja…

1. Gin框架入门

文章目录 一、Gin框架介绍二、RESTful API三、Gin渲染1. HTML渲染2. 自定义模板函数3. 静态文件处理4. 使用模板继承5. 补充文件路径处理6. JSON渲染7. XML渲染8. YMAL渲染9. protobuf渲染 四、Gin获取各种方式传递过来的参数1、获取querystring参数2、获取form参数3、获取path…

Vue3实现页面跳转功能

目标: 首页: 点击About后: 第一步:安装 Vue Router和创建你先 npm install vue-router4第二步:在router.js中设置路由 import { createRouter, createWebHistory } from vue-router; import Home from ./views/Home…

如何写一份简单的产品说明书,教程奉上

如果你是一位新晋产品经理,或者正在研发新产品,并且心中惴惴不安因为未知的产品说明书制作环节,那么今天你就来对地方了。本篇文章将教你如何创建一份简单明了的产品说明书。让我们开始吧! 首先,明确产品说明书的目标。…

达梦数据库基础操作(二):表空间操作

达梦数据库基础操作(二):表空间操作 1. 表空间操作 1.1 达梦表空间介绍 表空间的概念: 每个DM 数据库都是由一个或者多个表空间组成,表空间是一个逻辑的存储容器,它位于逻辑结构的顶层,用于存储数据库中的所有数据&am…

【CSP试题回顾】201503-3-节日

CSP-201503-3-节日 关键点:格式化输出 在C中,格式化输出通常利用iostream库中的功能,特别是iomanip头文件提供的一系列操作符。这些操作符用于控制输出格式,如宽度、填充、对齐方式等。在你提供的代码中,用于格式化输…

基于Springboot+Layui餐厅点餐系统

一、项目背景 在互联网经济飞速发展的时代,网络化企业管理也在其带领下快速兴起,开发一款自主点餐系统会受到众多商家的青睐。现如今市场上的人力资源价格是非常高昂的,一款自主点餐系统可以减少餐厅的人力开销,将服务员从繁忙的…

RESTful接口规范参考

介绍 REST(Representational State Transfe),一种架构设计风格,而不是强制标准,主要用于客户端与服务端接口规范;在现代的软件开发中,RESTful API已经成为应用程序之间通信的重要桥梁&#xff…

【Java】小白友好的Javassist源代码级别常用API学习笔记

目录 介绍 Javassist&ASM? Javassist关键类 常用方法 ClassPool 的常用方法 CtClass 的常用方法 CtMethod 的常用方法 CtField 的常用方法 补充 setSuperclass in Javassist constructor in Javassist toBytecode in Javassist Javassist实现TemplatesImpl恶…

电磁兼容EMC:单、双面板的均匀传输线

目录 1 传输线 2 均匀传输线 3 特征阻抗 4 应用案例 为何要讲单、双面板的均匀传输线?因为均匀传输线能保证信号质量,减少EMC问题,而单双面板没有完整的地和电源平面,很难实现均匀传输线的布线,所以更需要知道如何在…

[数据集][图像分类]玉米叶子病害分类数据集9145张4类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):9145 分类类别数:4 类别名称:["cercospora_leaf_spot gray…

08 |「Fragment 」

前言 实践是最好的学习方式,技术也如此。 文章目录 前言一、简介1、是什么2、为什么要有 Fragment3. Fragment 详细解释 二、Fragment 与 Activity 的直观理解三、Fragment 的创建1、Fragment 的创建方式2、Fragment 的增删替查1) 替换(常见&…

01背包问题 刷题笔记

思路 dp 用f[i][j]来表示当体积为j时 考虑前i件物品可以获得的 最大值 记住f[i][j]本身是个价“价值” 考虑两种状态 是否将第i件物品放入背包里面 将背包的体积从小到大递增来进行考虑 首先 考虑条件 如果当前增加的体积放不下下一件物品 则该体积 可以获得的最大值可以直接…

[剪藏] - 教育系统的成功

我在国内并没有系统地学习语音,在英国也未能成功,现在美国我确定我已经行驶在轨道上了(即使未来的作业分数及格或不及格)。 我反思有这么几点: 1. 美国紧扣系统的教材,不是老师自由发挥。教材是知识精英们…

tidyverse去除表格中含有NA的行

在tidyverse中,特别是使用dplyr包,去除含有NA的行可以通过filter()函数结合is.na()和any()或all()函数来实现。dplyr是tidyverse的一部分,提供了一系列用于数据操作的函数,使数据处理变得更加简单和直观。 以下是一个简单的例子&…

软考笔记--软件系统质量属性

一.软件系统质量属性的概念 软件系统的质量就是“软件系统与明确地和隐含的定义的需求相一致的程度”。更具体地说,软件系统质量就是软件与明确地叙述的功能和性能需求文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。从管理…