【SpringMVC】 三层架构

一.lombok工具包

中央仓库查找这个工具包:https://mvnrepository.com/

给类添加@Data注解就可以获取gettter和setter方法 , 这样我们就不必写getter 和 setter 方法.

也可以给成员属性添加单独的@getter 和 @setter , 针对某个成员属性单独添加setter或setter方法.

二.如果使用springboot快速地添加包

1..安装插件

IDEA插件市场搜索EditStar

2.在pom.xml中右击 --  选择generate  -- Edit Starters

3.添加Lombok

4.此时lombok就添加进来了


lombok也提供了其他一些细粒度的注解

@Getter

自动添加getter方法

@Setter

自动添加setter方法

@ToString

自动添加String方法

@HashCode

hasCode方法

三.应用分层

应用分层是一种开发设计思想,它将应用程序分为多个层次,这多个层次分别负责各自的职责,多个层次之间协同提供完整的功能. 

常见的MVC设计模式 , 就是引用分层的一种具体体现. 

为什么要分层 ? 

如果不分层, 大量的代码混杂在一起,很容易出现逻辑不清晰,各模块相互依赖,代码扩展性差,改一处就牵一发而动全身等问题.

三层架构

MVC模式是把整体的系统分成了 Model(模型), View(视图)和Controller (控制器)三个层次,也就是将⽤⼾视图和业务处理隔离开,并且通过控制器连接起来,很好地实现 了表现和逻辑的解耦,是⼀种标准的软件分层架构。

⽬前现在更主流的开发⽅式是 "前后端分离" 的⽅式, 后端开发⼯程师不再需要关注前端的实现, 所以对 于Java后端开发者, ⼜有了⼀种新的分层架构: 把整体架构分为表现层、业务逻辑层和数据层. 这种分层⽅式也称之为"三层架构" 

1.表现层 Controller

接收请求,返回结果

2.业务逻辑层 Service

主要处理业务逻辑

3.数据层/持久层 Dao

负责处理数据,包含数据的存储/获取

MVC 和三层架构的区别和联系

MVC模式强调数据和视图分离, 将数据展⽰和数据处理分开, 通过控制器对两者进⾏组合.

三层架构强调不同维度数据处理的⾼内聚和低耦合, 将交互界⾯, 业务处理和数据库操作的逻辑分开.

在⽇常的开发中可以经常看到两种共存的情况,⽐如我们设计模型层Model的时候往往也会拆分出业务逻辑层(Service层)和数据访问层(Dao层)。

但是⼆者的⽬的是相同的, 都是"解耦,分层,代码复⽤"

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

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

相关文章

ORACLE手动建库

1.确定oracle的实例名,以及数据库名 实例名称: ORACLE_SIDtest 数据库名称: test 2.手工创建如下目录: /oracle/admin/test/adump --对应的是spfile里参数audit_file_dest …

一起学docker系列之七docker容器卷技术

目录 1 为什么使用容器数据卷?2 数据卷的特点和优势3 使用数据卷的方法3.1 创建容器并挂载数据卷3.2 容器间数据卷的共享与继承 4 数据卷的权限设置5 注意事项5.1 解决权限问题5.2 路径自动创建 结语 对于容器化应用程序的数据管理和持久化,Docker 数据卷…

链表的回文结构

题目描述 题目链接:链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 题目分析 我们的思路是: 找到中间结点逆置后半段比对 我们可以简单画个图来表示一下: ‘ 奇数和偶数都是可以的 找中间结点 我们可以用快慢指针来找中:l…

如何实现图片轮播(python版)

为了实现图片自动轮播,我们可以使用Python编写一个简单的脚本。首先,我们需要安装一个名为Pillow的库来处理图片。在命令行中输入以下命令进行安装: pip install Pillow 接下来,我们编写一个名为image_slideshow.py的脚本&#x…

leetcode.884——字符串分割(substr),哈希(unordered_map)的练习

884. 两句话中的不常见单词 句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。 如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。 给你两个 句子 s1 和 s2 ,返回所有 不常用…

成为AI产品经理——模型构建流程(下)

目录 1.模型训练 2.模型验证 3.模型融合 4.模型部署 上节课我们讲了模型设计、特征工程,这节课我们来讲模型构建剩下的三个部分:模型训练、模型验证和模型融合。 1.模型训练 模型训练就是要不断地训练、验证、调优直至让模型达到最优。 那么怎么达…

Python“牵手”京东商品详情接口运营场景,京东商品详情接口调用指南

京东商品详情接口是一种程序化的接口,通过这个接口,商家或开发者可以使用自己的编程技能,获取京东平台上的商品详细信息。这个接口允许商家根据自身的需求,获取商品的标题、价格、促销价、优惠券、库存、销量、详情图片、SKU属性、…

YOLOv5分割训练,从数据集标注到训练一条龙解决

最近进行了分割标注,感觉非常好玩,也遇到了很多坑,来跟大家分享一下,老样子有问题评论区留言,我会的就会回答你。 第一步:准备数据集 1、安装标注软件labelme如果要在计算机视觉领域深入的同学&#xff0…

TC397 EB MCAL开发从0开始系列 之 [15.2] Fee配置 - QsBlock demo

一、Fee配置1、配置目标2、目标依赖2.1 硬件使用2.2 软件使用2.3 新增模块3、EB配置3.1 配置讲解3.2 模块配置3.2.1 MCU配置3.2.2 PORT配置3.2.3 Fls_17_Dmu配置3.2.4 Fee配置3.2.5 Irq配置3.2.6 ResourceM配置4、ADS代码编写及调试4.1 工程编译4.2 测试结果4.3 测例源码->

基于STC12C5A60S2系列1T 8051单片读写掉电保存数据IIC总线器件24C02一字节并显示在液晶显示器LCD1602上应用

基于STC12C5A60S2系列1T 8051单片读写掉电保存数据IIC总线器件24C02一字节并显示在液晶显示器LCD1602上应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍IIC通信简单…

致远M3 反序列化RCE漏洞复现(XVE-2023-24878)

0x01 产品简介 M3移动办公是致远互联打造的一站式智能工作平台,提供全方位的企业移动业务管理,致力于构建以人为中心的智能化移动应用场景,促进人员工作积极性和创造力,提升企业效率和效能,是为企业量身定制的移动智慧…

15.Python 异常处理和程序调试

1. 异常处理 异常就是在程序执行过程中发生的超出预期的事件。一般情况下,当程序无法正常执行时,都会抛出异常。 在开发过程中,由于疏忽或考虑不周,出现的设计错误。因此,在后期程序调试中应该根据错误信息&#xff…

系统高可用设计-有感

文章目录 系统设计原则是 冗余 取舍系统运维的原则是规避线上异常 高可用设计通常从 系统设计和 系统运维 2 个层面来着手突破。 系统设计原则是 冗余 取舍 冗余:指集群部署 故障转移取舍:常见手段包括:超时控制、降级、限流 系统运维…

音视频项目—基于FFmpeg和SDL的音视频播放器解析(二十)

介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…

springboot(ssm灾害应急救援平台 应急管理平台Java(codeLW)

springboot(ssm灾害应急救援平台 应急管理平台Java(code&LW) 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&#x…

AOP(面向切面编程)

AOP是针对面向对象编程的一种补充,有时使用面向对象不能很好完成一些额外的功能业务时,可以采用AOP来进行补充。切面编程的目的就是为了将业务目标进行而外的增强或者扩展。Spring中的AOP是基于JDK动态代理和CGLIB动态代理实现的。 应用场景 日志操作&…

【数据结构(四)】前缀、中缀、后缀表达式(逆波兰表达式)和逆波兰计算器的代码实现(2)

文章目录 1. 前缀表达式(波兰表达式)1.1. 前缀表达式的计算机求值 2. 中缀表达式3. 后缀表达式(逆波兰表达式)3.1. 后缀表达式的计算机求值3.2. 逆波兰计算器的实现 4. 中缀表达式 转 后缀表达式4.1. 思路分析4.2. 代码实现 5. 逆波兰计算器的完整版 1. 前缀表达式(波兰表达式)…

手写数字可视化_Python数据分析与可视化

手写数字可视化 手写数字流形学习 手写数字 手写数字无论是在数据可视化还是深度学习都是一个比较实用的案例。 数据在sklearn中,包含近2000份8 x 8的手写数字缩略图。 首先需要先下载数据,然后使用plt.imshow()对一些图形进行可视化: 打开c…

Mysql 锁机制分析

整体业务代码精简逻辑如下: Transaction public void service(Integer id) {delete(id);insert(id); }数据库实例监控: 当时通过分析上游问题流量限流解决后,后续找时间又重新分析了下问题发生的根本原因,现将其总结如下&#xf…

XDR 网络安全:技术和最佳实践

扩展检测和响应(XDR)是一种安全方法,它将多种保护工具集成到一个统一的集成解决方案中。它为组织提供了跨网络、端点、云工作负载和用户的广泛可见性,从而实现更快的威胁检测和响应。 XDR的目标是提高威胁检测的速度和准确性&…