面向对象五大基本原则

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. HBCK2修复hbase2的常见场景

    上一文章已经把HBCK2 怎么在小于hbase2.0.3版本的编译与用法介绍了,解决主要场景 查看hbase存在的问题 一.使用hbase hbck命令 hbase hbck命令是对hbase的元数据 ...

  2. TXT文本文件存储

    用解析器解析出数据之后,接下来就是存储数据了.保存的形式可以多种多样,最简单的形式是直接保存为文本文件,如 TXT.JSON.CSV 等.另外,还可以保存到数据库中,如关系型数据库 MySQL,非关系 ...

  3. selenium的各种操作

    import time from selenium.webdriver import Edge from selenium.webdriver.common.by import By from sel ...

  4. SpringBoot 文件打包zip,浏览器下载出去

    本地文件打包 /** * 下载压缩包 * * @param response */ @ResponseBody @GetMapping("/downloadZip") public ...

  5. yb课堂实战之首页banner轮播图和视频详情接口开发 《四》

    开发轮播列表接口 VideoMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCT ...

  6. 机器学习策略篇:快速搭建你的第一个系统,并进行迭代(Build your first system quickly, then iterate)

    快速搭建的第一个系统,并进行迭代 如果正在考虑建立一个新的语音识别系统,其实可以走很多方向,可以优先考虑很多事情. 比如,有一些特定的技术,可以让语音识别系统对嘈杂的背景更加健壮,嘈杂的背景可能是说咖 ...

  7. kafka3.0创建topic出现zookeeper is not a recognized option

    在linux云服务器上搭建了一套kafka3.0集群,然后安装以前的创建topic指令,例如这样-- ./kafka-topics.sh --bootstrap-server master:2181, ...

  8. Simple WPF: WPF实现一个MINIO等S3兼容对象存储上传文件的小工具

    最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园. 创作不易,如果觉得有用请在Github上为博主点亮一颗小星星吧! 目的 之前在阿里云ECS 99元/年的活动实例上搭建了一个测试用的 ...

  9. 重磅来袭!MoneyPrinterPlus一键发布短视频到视频号,抖音,快手,小红书上线了

    MoneyPrinterPlus开源有一段时间了,已经实现了批量短视频混剪,一键生成短视频等功能. 有些小伙伴说了,我批量生成的短视频能不能一键上传到视频号,抖音,快手,小红书这些视频平台呢?答案是必 ...

  10. [oeasy]python0021_宝剑镶宝石_爱之石中剑_批量替换_特殊字符_特殊颜色

    继续运行 回忆上次内容 上次 运行了 game.py 分析了 game.py 也大致读懂了 game.py       添加图片注释,不超过 140 字(可选)   这个 程序 可以进一步 进行修改吗 ...