| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring核心与设计思想 -> 正文阅读 |
|
[Java知识库]Spring核心与设计思想 |
目录 一、Spring是什么?
如果用一句话来总结Spring,那就是:
那么问题来了,工具方法是什么?IoC是什么?容器又是什么? 工具方法我们以后再说,我们先来看看IoC和容器 二、什么是容器?容器容器,肯定是要装东西的。其实我们之前学的List还有Tomcat都是容器,为啥这样说呢? 你看List/Map里面放的是不是都是数据,那他不就相当于是一个数据存储容器吗? 还有Tomcat,他里面不是有webapps这个目录,我们之前不都是把servlet项目代码放到webapp这个目录下吗?这个webapps不就是项目的容器吗?而这个webapps目录是Tomcat下面的一个子目录,那么我们把Tomcat称作是一个Web容器,完全没有问题呀!! 三、什么是IoC?初识Spring也是一个容器,而且Spring就是一个IoC容器。 那么关键的来了,什么是IoC
这个控制反转是什么意思呢?
这个“其他人”,就是 Spring 框架。
在 Spring 中,我们管 对象,叫做 Bean。 例子阐述IoC下面我们结合一个具体的例子来看看IoC思想有什么好处? ?假如,我们现在构建?辆“?”的程序,我们的实现思路是这样的
? ?这样有什么问题呢?
不信你看代码 ? 这样下来从上到下都有改变,整个代码的耦合性太高了。 为啥会这样呢?
? 解决方案
代码如下: ? 从上图也可以看出我们是分别在各自的类中传入了该类所需要的对象,那么对象的创建到达在那里呢? ? 在另外一个代码,但这个代码其实就和我们整个车的构建是无关的,只是负责构建驱动这个车 ? ? 代码经过以上调整,?论底层类如何变化,整个调?链是不?做任何改变的,这样就完成了代码之间的解耦,从?实现了更加灵活、通?的程序设计 ? 规律总结
我们发现了?个规律:传统代码是 Car 控制并创建了Framework,Framework 创建并创建了 Bottom,依次往下 ?改进之后的控制权发?的反转,不再是上级对象创建并控制下级对象了,?是下级对象把注?将当前对象中,下级的控制权不再由上级类控制了,这样即使下级类发?任何改变,当前类都是不受影响的,这就是典型的控制反转,也就是 IoC 的实现思想 Spring IoC思想的体现那么Spring的IoC思想体现在哪个地方呢? 本?刚开始咱们就讲:Spring 是包含了多个?具?法的 IoC 容器,这就是对 Spring 最核?的总结。“集成多个?具?法”这事咱们以后慢慢再讲,那如何理解“Spring 是?个 IoC容器”这句话呢? ? 既然Spring是一个IoC(控制反转)的容器,那么重点还在容器这两个字上,那么他就具备两个最基础的功能:
也就是学Spring最核心的功能,就是学习如何将对象存到Spring当中,在从Spring中获取对象的过程中:
总结:
使用Spring的好处:
4、DIDI的概念说到 IoC 不得不提的?个词就是“DI”,DI 是 Dependency Injection 的缩写,翻译成中?是“依赖注
那么依赖注入又是什么呢? 所谓依赖注?,就是由 IoC 容器在运?期间,动态地将某种依赖关系注?到对象之中。所以,依 ? ? IoC和DI,在广义上都是一回事! ? Ioc和DI的区别这个时候就会有一个经典的面试题了——IoC和DI有什么区别? IoC是一种思想,DI是一种实现
五、总结
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/10 18:39:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |