Spring 核心思想

简介: Spring 核心思想

Spring 是什么?如何理解 Spring?



我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是个开源框架,有着活跃而庞大的社区,这就是它之所以能经久不衰的原因。Spring 支持广泛的应用场景,它可以让 Java 企业级的应用程序开发起来更简单。


用一句话概括 Spring:Spring 是包含了众多工具方法的 IOC 容器。


IOC 容器是什么?



计算机中的容器


我们先来谈谈容器是什么,在计算机中的容器,其实和我们日常所说的容器其实是一一回事。


在日常生活中,

书架的可以用来放书、衣柜可以用来放衣服、瓶子可以用来装水,它们都是容器,而容器就是可以用来容纳东西的东西。


在计算机领域中,

List / Map 是一个用来存储数据的容器,Tomcat 是一个放 Web 程序的容器。


IOC 容器


IOC:Inversion of Control ( 控制反转 )


基于 IOC 这样的思想,对于 Spring 框架来说,就是由 Spring 来负责控制对象的生命周期和对象间的关系。也就是说,Spring 这个 IOC 容器,说的是对象创建和销毁的权利都交给 Spring 来管理了,它本身具备了存储对象和获取对象的能力。


怎么理解上面的这句话呢?


举个例子:比方说,一家汽车公司需要根据用户的需求,来定制一辆车,刚开始用户说按汽车公司的设计来,只要达到他需要的车速即可,配置都按最高的来。但是,用户中途改变注意了,他想让汽车轮胎变大一些,用来跑越野,这时候汽车厂商原先设计的汽车底盘、框架、零件都作废了。因为刚开始的底盘、零件都是和轮胎配合好的,如果重新按设计轮胎大小的话,就会影响之前的定制,从而带来损失。


这有一种 " 牵一发而动全身 " 的感觉,而实际上,在传统 Java 程序中,都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难以测试、难以修改。


而有了 IOC 的思想后,对于刚刚的汽车公司的例子就是,公司按照零件的标准来,先根据不同的轮子,再采用不同的底盘和框架。公司并不是一下子就设计好一个完整的产品。而是,汽车厂商有什么样的标准,就按什么样的标准来。往后,用户需要什么尺寸的轮胎,公司直接向代理工厂下单,配套使用一类底盘,如果用户中途又改变选择了,这类底盘就不用了,再换一类其他的底盘,倒不至于之前的底盘和零件都因为一次定制都全部作废了。


上面的汽车厂商的例子就是,厂商需要什么零件,只需要和代理工厂说就好,不管代理工厂让什么员工去实现零件,这都和厂商没有关系,厂商只需要付钱给工厂,而代理工厂只需要交货并拿钱就行了。而汽车厂商只需要和用户打交道,用户有什么需求,厂商就需要按照其需求来即可。


这就带来了一个好处,用户与汽车厂商装配零件的来源没关系,汽车厂商与代理工厂的工人没关系…


所以综上所述,IOC 思想,最大的作用就是,解决了代码的耦合性。


Spring 最核心的功能是什么



因为 Spring 本质上就是一个 IOC 容器,那么它就具备两个功能:


  1. 将 Bean ( 对象 ) 存储到 Spring ( 容器 ) 中。
  2. 将 Bean ( 对象 ) 从 Spring ( 容器 ) 中取出来。


而实际上,Spring 最核心的功能也就是上面的两个功能,当然,也就是我们重点理解、重点学习 Spring 需要做的事情。


DI 是什么?IOC 和 DI 有什么区别?



DI:Dependency Injection ( 依赖注入 )


所谓依赖注入,就是由 IOC 容器在运行期间,动态地将某种依赖关系注入到对象之中。所以,依赖注入和控制反转是从不同的角度的描述的同一件事情。本质上,DI 就是指通过引入 IOC 容器,利用依赖关系注入的方式,实现对象之间的解耦。


IOC 和 DI 之间的区别


IOC 是一种思想,DI 是一种基于这种思想的实现。

实际上换句话说,IOC 是策划者,DI 是执行者。


比方说,今天我过生日,想去下饭馆,那么我就想去吃火锅," 去吃火锅 " 就是 IOC,那么市里面有很多火锅店,我究竟去哪家店呢?我究竟采取坐公交的方式去店里面、还是自己开车去店里面呢?这就可能根据个人口味、交通路况等一些情况再做决定了。那么后者,我需要动身去火锅店这个行动就是 DI.


目录
相关文章
|
5月前
|
存储 Java 应用服务中间件
Spring框架学习 -- 核心思想
Spring框架学习 -- 核心思想
44 0
|
前端开发 Java 数据库连接
Spring框架源码分析之Spring核心思想讲解
Spring框架源码分析之Spring核心思想讲解
82 0
Spring框架源码分析之Spring核心思想讲解
|
Java 数据库连接 数据库
spring高级源码笔记:深入理解阿里spring源码核心思想及框架应用
Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 SpringMVC 和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三⽅框架和类库,已经成为使⽤最多的 Java EE 企业应⽤开源框架。
200 0
|
Java 数据库连接 数据库
深入解析Spring基本概念和核心思想
深入解析Spring基本概念和核心思想
|
Java 容器 Spring
Spring核心思想
Spring核心思想
|
XML 小程序 Java
【Spring】spring核心思想——IOC和DI
1. Spring 是什么? 2. IOC 是什么 2.1 正向控制 2.2 反向控制 3. DI 概念说明 4. Spring 的工作模式可以理解成一个买卖对象的市场 5. 以一个小程序来理解 IOC 和 DI 6. 以 XML 文件的方式将对象注入到我们自己创建的库中 6.1 新建一个 XML 文件 6.2 在 Main 中操作这个库 6.2 XML 文件的方式注入 bean(对象)
115 0
|
设计模式 移动开发 Java
Spring三大核心思想之AOP(面向切面编程)
Spring三大核心思想之AOP(面向切面编程) 学习Spring三大核心思想之AOP之前建议先学习: 🔴1、Srping之IOC思想及使用 🔴2、Spring核心思想AOP的底层设计模式之代理模式 🍅 程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
141 0
Spring三大核心思想之AOP(面向切面编程)
|
设计模式 数据采集 Java
java设计模式之代理设计模式(Spring核心思想AOP的底层设计模式)
代理设计模式 🍅 作者:程序员小王 🍅 程序员小王的博客:程序员小王的博客 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
116 0
java设计模式之代理设计模式(Spring核心思想AOP的底层设计模式)
|
设计模式 Java 中间件
(一)Spring工厂的底层实现原理(简易版)&理解Spring三大核心思想之一:IOC思想及使用
Spring工厂的底层实现原理(简易版)&理解Spring三大核心思想之一:IOC思想及使用 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:https://blog.csdn.net/weixin_44385486/article/details/121241079
274 0
(一)Spring工厂的底层实现原理(简易版)&理解Spring三大核心思想之一:IOC思想及使用
|
Java Spring 容器
Spring核心思想之IOC和AOP
IOC和AOP不是Spring提出的,在spring之前就已经存在,只不过更偏向于理论化,spring在技 术层次把这两个思想做了⾮常好的实现(Java)。
273 1
Spring核心思想之IOC和AOP