【Spring】Spring 启示录(Spring 前置相关概念)

简介: 【Spring】Spring 启示录(Spring 前置相关概念)

根据 【动力节点】最新Spring框架教程,全网首套Spring6教程,跟老杜从零学spring入门到高级 以及老杜的原版笔记 https://www.yuque.com/docs/share/866abad4-7106-45e7-afcd-245a733b073f?# 《Spring6》 进行整理, 文档密码:mg9b


Spring 相关文章整理汇总归纳于:https://www.yuque.com/u27599042/zuisie


OCP 开闭原则

  • OCP 开闭原则是软件七大开发原则当中最基本的一个原则
  • OCP 开闭原则:
  • 在软件开发过程中应当对扩展开放,对修改关闭。
  • 在软件开发过程中,通过添加额外的类对原先程序已有的功能进行扩展是没问题的,但是如果因为要进行功能扩展而修改之前运行正常的程序,这是不被允许的。
  • 因为一旦修改之前运行正常的程序,那么项目整体就要进行重新测试,这会导致额外的开销和资源消耗,并且测试过程相当麻烦。
  • OCP 开闭原则是最核心的、最基本的,其他的六个开发原则都是为这个原则服务的。
  • 是否违反 OCP 开闭原则的判断:
  • 只要你在扩展系统功能的时候,没有修改以前写好的代码,那么你就是符合 OCP 原则的。
  • 反之,如果在扩展系统功能的时候,你修改了之前的代码,那么这个设计是失败的,违背了OCP原则。

依赖倒置原则

  • 依赖倒置原则,就是不再显示的建立类之间的关联关系,而是面向接口编程,面向抽象编程,不要面向具体编程,从而降低程序的耦合度,提高程序的扩展力,增强代码复用性
  • 依赖倒置原则的目的:降低程序的耦合度,提高程序的扩展力,增强代码复用性
  • 是否符合依赖倒置原则:
  • 上 不依赖 下,就是符合,即类的实例对象之间没有明确固定在代码中的依赖关系
  • 上 依赖 下,就是违背。只要“下”一改动,“上”就受到牵连。
  • 符合依赖倒置原则的编程思想:控制反转

控制反转

  • 当前程序的设计,显然既违背OCP,又违背DIP,可以采用“控制反转”这种编程思想来解决这个问题。
  • 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计思想,可以用来降低代码之间的耦合度,符合依赖倒置原则。
  • 由于控制反转思想出现的比较新,所以没有被纳入GoF23种设计模式范围内。
  • 控制反转的核心思想:
  • 将对象的创建权交出去
  • 将对象和对象之间关系的管理权交出去
  • 对象的创建和对象之间关系的维护都由第三方容器来负责
  • 控制反转中的反转是两件事:
  • 第一件事:不在程序中采用硬编码的方式来new对象了,将new对象的权利交出去
  • 第二件事:不在程序中采用硬编码的方式来维护对象的关系了,对象之间关系的维护权交出去了
  • 控制反转思想的实现:依赖注入

依赖注入

  • 控制反转的实现方式有多种,其中比较重要的叫做:依赖注入(Dependency Injection,简称DI)。
  • 依赖注入,用于实现对象之间关系的建立
  • 控制反转是思想。依赖注入是这种思想的具体实现。
  • 依赖注入DI,又包括常见的两种方式:
  • 第一种:set注入(执行set方法给属性赋值)
  • 第二种:构造方法注入(执行构造方法给属性赋值)
  • 依赖注入 中 “依赖”是什么意思? “注入”是什么意思?
  • 依赖:A对象和B对象的关系。
  • 注入:是一种手段,通过这种手段,可以让A对象和B对象产生关系。
  • 依赖注入:对象A和对象B之间的关系,靠注入的手段来维护。而注入包括:set注入和构造注入。

术语小结

  • OCP:开闭原则(开发原则)
  • DIP:依赖倒置原则(开发原则)
  • IoC:控制反转(一种思想,一种新型的设计模式)
  • DI:依赖注入(控制反转思想的具体实现方式)
相关文章
|
5月前
|
Java Maven 数据安全/隐私保护
详解 Java AOP:面向方面编程的核心概念与 Spring 实现
详解 Java AOP:面向方面编程的核心概念与 Spring 实现
85 1
|
6月前
|
Java 关系型数据库 数据库
Spring Boot多数据源及事务管理:概念与实战
【4月更文挑战第29天】在复杂的企业级应用中,经常需要访问和管理多个数据源。Spring Boot通过灵活的配置和强大的框架支持,可以轻松实现多数据源的整合及事务管理。本篇博客将探讨如何在Spring Boot中配置多数据源,并详细介绍事务管理的策略和实践。
485 3
|
6月前
|
安全 Java 测试技术
Spring Boot集成支付宝支付:概念与实战
【4月更文挑战第29天】在电子商务和在线业务应用中,集成有效且安全的支付解决方案是至关重要的。支付宝作为中国领先的支付服务提供商,其支付功能的集成可以显著提升用户体验。本篇博客将详细介绍如何在Spring Boot应用中集成支付宝支付功能,并提供一个实战示例。
367 2
|
3月前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
5月前
|
Java 数据库连接 Spring
Spring底层架构核心概念总结
Spring底层架构核心概念总结
|
5月前
|
消息中间件 Java Maven
深入理解Spring Boot Starter:概念、特点、场景、原理及自定义starter
深入理解Spring Boot Starter:概念、特点、场景、原理及自定义starter
|
5月前
|
前端开发 安全 Java
Spring EL表达式:概念、特性与应用深入解析
Spring EL表达式:概念、特性与应用深入解析
|
5月前
|
XML 负载均衡 Java
Spring Boot 中实现负载均衡:概念、功能与实现
【6月更文挑战第28天】在分布式系统中,负载均衡(Load Balancing)是指将工作负载和流量分配到多个服务器或服务实例上,以提高系统可用性和响应速度。负载均衡器可以是硬件设备,也可以是软件解决方案。
282 0
|
5月前
|
XML Java 数据库
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
30 0
|
5月前
|
SQL Java 数据库连接
Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
Spring5系列学习文章分享---第四篇(JdbcTemplate+概念配置+增删改查数据+批量操作 )
35 0