JavaWeb Day05 前后端请求响应与分层解耦

目录

一、请求与响应

(一)请求的参数接收

①数组参数

②集合参数

③日期参数

④json参数

⑤路径参数

总结

(二)响应

①简单文本text

②数组

③列表

④同一响应数据格式

⑤总结

二、三层架构与分层解耦

(一)案例

(二)三层架构

(三)分层解耦

①高耦合(new对象)

②分层解耦

(三)IOC&DI入门

(四)Bean

①Bean的声明

②Bean组件扫描​编辑

③Bean注入

④总结​编辑


 

一、请求与响应

(一)请求的参数接收

前端通过axios向发出服务器请求,服务器接受请求,将接受的参数封装到对象中

①数组参数

②集合参数

③日期参数

④json参数

⑤路径参数

总结

(二)响应

服务器响应前端的请求,向前端发送数据

①简单文本text

②数组

responsebody会把address对象转换为json对象,然后再响应回去

③列表

responsebody会把list对象转换为数组,数组元素为json格式,然后再响应回去

④同一响应数据格式

responseController中的方法都是功能接口,路径就是接口访问路径

⑤总结

二、三层架构与分层解耦

(一)案例

(二)三层架构

前端发起请求之后先到达controller,controller接收请求后,需要调用service进行逻辑处理,逻辑处理的前提是要先拿到数据,此时service要再调用Dao层,Dao层操作文件中的数据,把数据返回给Service层,Service层对数据进行逻辑处理,把逻辑处理结果返回给Controller,Controller再把数据响应给前端

想修改某一接口的业务逻辑,不需要操作Controller和Dao层,程序可扩展性和可维护性更好

Dao层访问方式:文件,数据库,接口 

可以通过面向接口的方式进行面向接口编程,所以在编写Dao的具体实现之前需要先定义Dao接口,增强程序的灵活性和扩展性

(三)分层解耦

①高耦合(new对象)

解耦:不能new对象,采用注解方式

②分层解耦

(三)IOC&DI入门

@Autowired

运行时,IOC容器会提供该类型的bean对象,并赋值给该变量  ---依赖注入

@Component

将当前类交给IOC容器管理,成为IOC容器中的bean对象   ---控制反转

(四)Bean

①Bean的声明

②Bean组件扫描

当注解中只有"一个属性",并且属性名是"value",使用注解时,可以省略value属性名

③Bean注入

④总结

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端特殊字符转码

前端特殊字符转码 建议 最好不要传名称,传ID 是在不行就用这个方法 name encodeURIComponent(name),

医院检验信息管理系统源码 医院LIS系统源码 云LIS源码 区域LIS源码

医院检验信息管理系统源码 医院LIS系统源码 云LIS源码 区域LIS源码 医院检验信息管理系统,利用计算机网络技术、数据存储技术、快速处理技术,对检验科进行全方位信息化管理,使检验科达到自动化运行,信息化管理和无纸化办公的目的…

【C++】万字详解IO流(输入输出流+文件流+字符串流)

文章目录 一、标准输入输出流1.1提取符>>&#xff08;赋值给&#xff09;与插入符<<&#xff08;输出到&#xff09;理解cin >> a理解ifstream&#xff08;读&#xff09; >> a例子 1.2get系列函数get与getline函数细小但又重要的区别 1.3获取状态信息…

矩阵键盘独立接口设计(Keil+Proteus)

前言 实验&#xff1a;通过4*4的矩阵键盘&#xff0c;按下某个按钮之后会在数码管上面显示对应的键号。&#xff08;0~F&#xff09; 基础操作参考这篇博客&#xff1a; LED数码管的静态显示与动态显示&#xff08;KeilProteus&#xff09;-CSDN博客https://blog.csdn.net/w…

13 # 手写 concat 方法

concat 的使用 concat() 方法用于合并两个或多个数组。此方法不会更改现有数组&#xff0c;而是返回一个新数组。如果省略了所有参数&#xff0c;则 concat 会返回调用此方法的现存数组的一个浅拷贝。 <script>var arr1 ["k", "a", "i"…

Python tkinter库的Menu组件实现菜单栏、一级菜单、二级菜、三级菜单

在Python的Tkinter中&#xff0c;要显示菜单栏、一级菜单、二级菜、三级菜单&#xff0c;可以使用add_cascade方法将下一级菜单添加到上一级菜单中。 运行结果 下面是一个简单的示例&#xff1a; import tkinter as tkroot tk.Tk()# 创建菜单栏 menubar tk.Menu(root) root…

官方Redis视图化工具Redisinsight

一、下载最新版本的 docker pull redislabs/redisinsight mkdir /data/redisinsight docker run -d -u root -p 8001:8001 -v /etc/localtime:/etc/localtime -v /data/redisinsight:/db --restartunless-stopped redislabs/redisinsight:latest 二、浏览器打开 http://192…

C#解析XML并反序列化为Model的方法

虽然现在json大行其道&#xff0c;但是xml格式依旧占据着广阔的编程世界&#xff0c;不管光伏锂电激光卫星汽车等等工业领域&#xff0c;基本上都是以xml为主&#xff0c;广大的.NET开发人员有很多被xml折磨的都要转java了&#xff0c;这篇小作文就来玩一种迅速完成xml到model的…

DuiLib中常用各种RGB颜色对照表

【常识】常用RGB颜色对照表] 颜色样式***RGB*数值颜色代码颜色样式***RGB*数值颜色代码黑色0,0,0#000000白色255,255,255#FFFFFF象牙黑88,87,86#666666天蓝灰202,235,216#F0FFFF冷灰128,138,135#808A87灰色192,192,192#CCCCCC暖灰128,118,105#808069象牙灰251,255,242#FAFFF0石…

Vue 入门案例剖析

vscode 启用open with live server功能&#xff0c;配置谷歌浏览器chrome_小头猿的博客-CSDN博客 之所以使用vue就是想让其帮我们构建页面&#xff0c;构建出来了页面但是摆在那个位置呢&#xff1f;所以得准备好一个容器&#xff0c;最起码得有东西去承接这个界面。 控制台这…

红海云签约和兆服饰,科技引领服饰行业人力资源数字化转型

和兆服饰从事多品牌多品类经营管理&#xff0c;旗下拥有POLOSPORT、POLOKIDS、CARTELO等国际品牌。作为一个主打POLO文化的服饰品牌&#xff0c;诞生于美国的POLOSPORT拥有现代感的产品设计、系列化的产品搭配、全方位的服务&#xff0c;是最具美国马球精神的休闲时尚服饰品牌之…

暖通空调系统使用Modbus转Profinet网关应用配置案例

PLC通过兴达易控Modbus转Profinet网关&#xff08;XD-MDPN100)控制暖通空调的温度、湿度。作为控PLC可以通过Modbus传输到Profinet网关&#xff0c;与空调系统的压缩机进行通信&#xff0c;从而准确控制单元的加热、加湿、冷却和减湿。PLC可以实时监控和调整空调系统的运行状态…

给VSCode插上一双AI的翅膀

#AI编程助手哪家好&#xff1f;DevChat“真”好用# 文章目录 前言一、安装DevChat1.1、访问地址1.2、注册1.3、在VSCode里安装DevChat插件1.3.1、未安装状态1.3.2、已安装状态 二、设置Access Key2.1. 点击左下角管理&#xff08;“齿轮”图标&#xff09;—命令面板&#xff…

mac 卸载第三方输入法

输入法设置里的移除&#xff0c;并不是真的卸载&#xff0c;点击还是能添加回来 在活动监视器里强制退出此输入法在访达界面使用快捷键 ShiftcommandG在弹出的对话框内输入以下路径&#xff08;/资源库/Input Methods&#xff09;&#xff0c;再点击下面的前往找到你要卸载的输…

【深度神经网络(DNN)】实现车牌识别

文章目录 前言一、数据集介绍二、步骤1.导包2.参数配置3.数据处理4.模型定义5.模型训练6.模型预测 总结 前言 课内实践作业 车牌识别 一、数据集介绍 1.车牌识别数据集&#xff1a;VehicleLicense车牌识别数据集包含16151张单字符数据&#xff0c;所有的单字符均为严格切割且…

【网络协议】聊聊HTTPDNS如何工作的

传统 DNS 存在哪些问题&#xff1f; 域名缓存问题 我们知道CND会进行域名解析&#xff0c;但是由于本地会进行缓存对应的域名-ip地址&#xff0c;所以可能出现过期数据的情况。 域名转发问题 出口 NAT 问题 域名更新问题 解析延迟问题 因为在解析DNS的时候&#xff0c;需要进行…

MySQL:锁机制

目录 概述三种层级的锁锁相关的 SQLMyISAM引擎下的锁InnoDB引擎下的锁InnoDB下的表锁和行锁InnoDB下的共享锁和排他锁InnoDB下的意向锁InnoDB下的记录锁&#xff0c;间隙锁&#xff0c;临键锁记录锁&#xff08;Record Locks&#xff09;间隙锁&#xff08;Gap Locks&#xff0…

IDEA Plugin插件开发相关踩坑

1 前言 最近在研究IDEA插件开发&#xff0c;踩了不少坑&#xff0c;特意在这里记录一下…… 2 Java相关类找不到 照着网上一些资料&#xff0c;想要实现代码审计自动提示功能&#xff0c;需要继承AbstractBaseJavaLocalInspectionTool 结果import一片爆红&#xff0c;找不到相…

从F5 BIG-IP RCE漏洞(CVE-2023-46747)来看请求走私的利用价值

0x01 前言 F5 BIG-IP广域流量管理器是一种网络流量管理设备&#xff0c;用于提升链路性能与可用性。F5在金融行业具有特别广泛的使用量&#xff0c;做过各大银行攻防演练的小伙伴对这个系统应该不会陌生。 最近爆出的CVE-2023-46747漏洞能达到远程RCE的效果&#xff0c;属于严重…