面向对象五大基本原则

graph LR
A(面向对象五大原则);B(单一职责原则);C(开放封闭原则);D(里式替换原则);E(依赖倒置原则);F(接口隔离原则);
A---B;A---C;A---D;A---E;A---F;
B-->b[一个类只负责一个明确的职责或功能];
C-->c[实体类对拓展开放,对修改封闭 拓展现有代码实现新功能,而非修改原有代码];
D-->d[子类对象能够替换父类对象,并且程序行为不会发生改变,要点:<ol><li>子类在继承父类时,必须实现父类中所有的抽象方法</li><li>子类在可以在实现父类的抽象方法时,增加自己的特殊行为,但不能修改父类的数显逻辑</li><li>子类的前置条件,如: 接收的参数 调用的方法等,不能比父类更加限制</li><li>子类的后置条件,如: 返回值 抛出的异常等,不能比父类更宽松</li><li>子类的方法不能抛出父类方法未声明的异常</li></ol>];
E-->e[依赖关系应该通过接口或抽象类来建立,不通过具体的实现类, 要点:<ol><li>高层模块应该定义一个抽象接口或抽象类,用于定义它所依赖的低层模块的行为</li><li>低层模块应该实现高层模块定义的抽象接口或抽象类,提供具体的实现</li><li>高层模块应该通过抽象接口或抽象类来依赖低层模块,而不是直接依赖具体的实现类</li></ol>]
F-->f[将庞大的接口拆分成更小的 更具体的接口 以避免接口过于臃肿和不必要的依赖关系,要点:<ol><li>接口应该只包含客户端需要的方法 不应该包含不相关或不必要的方法 一个接口应该具有单一责任 只负责一个特定的功能或行为</li><li>客户端只依赖所需要接口 而不依赖不需要接口</li><li>接口设计应该经过合理的考虑和分析 避免频繁变更和修改</li></ol>]

Spring Boot五层架构

flowchart LR
subgraph 五层架构
direction TB
A(Web层/表现层);B(Controller层);C(Service层);D(Mapper层/Dao层);F(数据库);
A<--Vo-->B;
B--Dto-->C;
C<--Po-->D;
D<--Pojo/entity-->F;
end
subgraph 各层作用
direction LR
A2(Web层/表现层)-->a(负责接收用户请求并展示处理结果,表现层通常由前端页面 前端控制器 和视图解析器等组成,与用户交互,接收用户输入,将请求传递给控制层处理,并将处理结果展示给用户);
B2(Controller层)-->b(负责接收表现层传递过来的请求,处理请求并调用服务层逻辑处理业务逻辑);
C2(Service层)-->c(负责处理业务逻辑和业务规则.服务层包含业务逻辑的具体实现,通常用来协调各个业务功能的调用,同时也可以包含事务管理等业务逻辑.);
D2(Mapper层/Dao层)-->d(负责与数据库进行交互,执行数据持久化操作.持久层包含数据访问对象Dao或仓储类Repository或Mapper类,用于执行数据库的CRUD操作.);
end
五层架构-->各层作用

关于Springboot理解的更多相关文章

  1. shiro+jwt+springboot理解

    转自 https://www.cnblogs.com/fengli9998/p/6676783.html https://www.jianshu.com/p/0366a1675bb6 https:// ...

  2. spring boot 小案例

    1. SpringBoot 1.1. 概要 在传统的SSM框架应用过程中,存在大量的配置文件,及相关的配置项,例如: 1. DispatcherServlet 2. CharacterEncoding ...

  3. Spring Boot 定制与优化内置的Tomcat容器

    1.Spring Boot定制与优化内置Tomcat容器. > 内置的容器有三个分别是Undertow.Jetty.Tomcat,Spring Boot 对这三个容器分别进行了实现,它们上层接口 ...

  4. Offer经验分享 - 蚂蚁金服、字节跳动、PDD、百度、华为、Paypal - Java社招面经

    年中的时候因为换工作的缘故,陆续参加了华为.蚂蚁.字节跳动.PDD.百度.Paypal的社招面试,除了字节跳动流程较长,我主动结束面试以外,其他的都顺利拿到了Offer. 最近时间稍微宽裕点了,写个面 ...

  5. java基础知识面试总结-部分

    前言 在平时的工作学习中,自己对微服务和springboot基础理论知识关注比较少,在面试中对于面试官的问题,很多基本都不能够达到精准,全面:现将自己面试中的问题做以总结: 1.谈谈你对微服务架构的认 ...

  6. 深入理解Redis系列之SpringBoot集成Redis

    SpringBoot环境 快速搭建一个SpringBoot工程 进入 https://start.spring.io 网站, 使用该网站初始化一个SpringBoot工程 添加相关依赖 因为使用spr ...

  7. springBoot(1)---springboot初步理解

    springboot初步理解 在没有用SpringBoot之前,我们用spring和springMVC框架,但是你要做很多比如: (1)配置web.xml,加载spring和spring mvc 2) ...

  8. 基于SpringBoot的Environment源码理解实现分散配置

    前提 org.springframework.core.env.Environment是当前应用运行环境的公开接口,主要包括应用程序运行环境的两个关键方面:配置文件(profiles)和属性.Envi ...

  9. 5分钟理解 SpringBoot 响应式的核心-Reactor

    目录 一.前言 二. Mono 与 Flux 构造器 三. 流计算 1. 缓冲 2. 过滤/提取 3. 转换 4. 合并 5. 合流 6. 累积 四.异常处理 五.线程调度 小结 参考阅读 一.前言 ...

  10. Reactive(3)5分钟理解 SpringBoot 响应式的核心-Reactor

    目录 一.前言 二. Mono 与 Flux 构造器 三. 流计算 1. 缓冲 2. 过滤/提取 3. 转换 4. 合并 5. 合流 6. 累积 四.异常处理 五.线程调度 小结 参考阅读 一.前言 ...

随机推荐

  1. EthernetIP IO从站设备数据 转opc ua项目案例

    1 案例说明 设置网关采集EthernetIP IO设备数据 把采集的数据转成opc ua协议转发给其他系统. 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议 ...

  2. 使用 GPU 进行 Lightmap 烘焙 - 简单 demo

    作者:i_dovelemon 日期:2024-06-16 主题:Lightmap, PathTracer, Compute Shader 引言 一直以来,我都对离线 bake lightmap 操作很 ...

  3. 高通安卓:自定义QFile烧录镜像

    高通安卓:自定义QFile烧录镜像 背景 在某个项目中,因为USB口的问题,无法使用fastboot进行download. 同事提供了一份用与QFile的rawprogram.xml烧写.觉得这个方法 ...

  4. Gerrit 大量代码提交流程优化

    # Gerrit 大量代码提交流程优化 背景 本文适用于 提交大量初始代码 的场景(仓库版本的早期). 有时候提交大量代码到Gerrit的时候会提示: $ git push Counting obje ...

  5. USB OTG有关协议

    想了解USB OTG的工作原理,需要知道三个协议: ADP:Attach Detection Protocol HNP:Host Negotiation Protocol SRP:Session Re ...

  6. 【Ubuntu 1】ubuntu的软件包及便携系列 记录

    目录 命令行补充[备注记录] 不想每次---- source /devel/setup.bash sudo chomd 777 /dev/ttyUSB* 安装区 --- 强推!Synergy Chro ...

  7. Java实现分页的方式有哪些?

    1.手动分页 不使用任何框架,用limt分页 select xx from tab_a limt #{pageNo},#{pageSize} 2.RowBounds分页(不推荐) 这个是内存分页,它的 ...

  8. MathType选项灰色无法点击或者word无法粘贴,治本解决方案

    问题描述: mathtype安装过后,word中会出现mathtype的选项,但是这时mathtype中的选项是虚的,无法点击,而且此时word无法粘贴内容. 解决步骤: 1.打开word选项,点击加 ...

  9. CGI,FastCGI和PHP-FPM之间的关系和区别

    什么是CGI?早期的web server只可以处理简单的静态web文件,但是随着技术的发展出现动态语言如PHP,Python.PHP语言交给PHP解析器进行处理,但是处理之后如何和web server ...

  10. [oeasy]python0120_英语的崛起_英文字符_小写字母的由来_不列颠帝国

    各语言字符编码 回忆上次内容 罗马 承袭了 希腊的文化 学习了 希腊的字符   拥有 罗马帝国的战力 基督教文化的影响     ​   添加图片注释,不超过 140 字(可选)   这个时候 不列颠 ...