萧山网站建设xssemwordpress百度云直链
- 作者: 五速梦信息网
- 时间: 2026年04月20日 07:10
当前位置: 首页 > news >正文
萧山网站建设xssem,wordpress百度云直链,做网站需要多少钱 爱问知识人,百度手机版网页文章目录一、Spring 是什么1.1 什么是容器1.2 什么是 IoC二、开发案例对比2.1 传统程序开发2.2 控制反转式程序开发2.3 对⽐总结规律三、理解 Spring IoC四、DI 概念说明五、总结一、Spring 是什么
我们通常所说的 Spring 指的是 Spring Framework#xff08;Spring 框架Spring 框架它是⼀个开源框架有着活跃⽽庞⼤的社区这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景它可以让 Java 企业级的应⽤程序开发起来更简单
⽤⼀句话概括 Spring Spring 是包含了众多⼯具⽅法的 IoC 容器
那问题来了什么是容器什么是 IoC 容器 众多方法我们后面再了解
1.1 什么是容器
容器是⽤来容纳某种物品的基本装置——百度百科
之前课程我们接触的容器有哪些
List/Map - 数据存储容器Tomcat - Servlet 容器
1.2 什么是 IoC
Spring 也是⼀个容器Spring 是什么容器呢Spring 是⼀个 IoC 容器
什么是 IoC
IoC Inversion of Control 翻译成中⽂是“控制反转”的意思也就是说 Spring 是⼀个“控制反转”的容器怎么理解这句话呢如下分析
二、开发案例对比
2.1 传统程序开发
假如我们现在构建⼀辆“⻋”的程序我们的实现思路是这样的
构建⼀辆⻋Car Class然⽽⻋需要依赖⻋身(FrameWork Class)⽽⻋身需要依赖底盘BottomClass⽽底盘需要依赖轮胎Tire Class最终程序的实现代码如下
public class NewCarExample {public static void main(String[] args) {Car car new Car();car.init();}/*** 汽⻋对象/static class Car {public void init() {// 依赖⻋身Framework framework new Framework();framework.init();}}/** ⻋身类/static class Framework {public void init() {// 依赖底盘Bottom bottom new Bottom();bottom.init();}}/** 底盘类/static class Bottom {public void init() {// 依赖轮胎Tire tire new Tire();tire.init();}}/** 轮胎类/static class Tire {// 尺⼨private int size 30;public void init() {System.out.println(轮胎尺⼨ size);}}
}传统程序开发的缺陷
以上程序中轮胎的尺⼨的固定的然⽽随着对的⻋的需求量越来越⼤个性化需求也会越来越多这时候我们就需要加⼯多种尺⼨的轮胎那这个时候就要对上⾯的程序进⾏修改了修改后的代码如下所示
public class NewCarUpdateExample {public static void main(String[] args) {Car car new Car(20);car.run();}/** 汽⻋对象/static class Car {private Framework framework;public Car(int size) {framework new Framework(size);}public void run() {
// 依赖⻋身framework.init();}}/** ⻋身类/static class Framework {private Bottom bottom;public Framework(int size) {bottom new Bottom(size);}public void init() {
// 依赖底盘bottom.init();}}/** 底盘类/static class Bottom {private Tire tire;public Bottom(int size) {tire new Tire(size);}public void init() {
// 依赖轮胎tire.init();}}/** 轮胎类*/static class Tire {// 尺⼨private int size;public Tire(int size) {this.size size;}public void init() {System.out.println(轮胎尺⼨ size);}}
}从以上代码可以看出以上程序的问题是当最底层代码改动之后整个调⽤链上的所有代码都需要修改
解决传统开发中的缺陷
我们可以尝试不在每个类中⾃⼰创建下级类如果⾃⼰创建下级类就会出现当下级类发⽣改变操作⾃⼰也要跟着修改。此时我们只需要将原来由⾃⼰创建的下级类改为传递的⽅式也就是注⼊的⽅式因为我们不需要在当前类中创建下级类了所以下级类即使发⽣变化创建或减少参数当前类本身也⽆需修改任何代码这样就完成了程序的解耦 PS解耦指的是解决了代码的耦合性耦合性也可以换⼀种叫法叫程序相关性。好的程序代码的耦合性代码之间的相关性是很低的也就是代码之间要实现解耦.这就好⽐我们打造⼀辆完整的汽⻋如果所有的配件都是⾃⼰造那么当客户需求发⽣改变的时候⽐如轮胎的尺⼨不再是原来的尺⼨了那我们要⾃⼰动⼿来改了但如果我们是把轮胎外包出去那么即使是轮胎的尺⼨发⽣变变了我们只需要向代理⼯⼚下订单就⾏了我们⾃身是不需要出⼒的 2.2 控制反转式程序开发
基于以上思路我们把调⽤汽⻋的程序示例改造⼀下把创建⼦类的⽅式改为注⼊传递的⽅式具体实现代码如下
public class IocCarExample {public static void main(String[] args) {Tire tire new Tire(20);Bottom bottom new Bottom(tire);Framework framework new Framework(bottom);Car car new Car(framework);car.run();}static class Car {private Framework framework;public Car(Framework framework) {this.framework framework;}public void run() {framework.init();}}static class Framework {private Bottom bottom;public Framework(Bottom bottom) {this.bottom bottom;}public void init() {bottom.init();}}static class Bottom {private Tire tire;public Bottom(Tire tire) {this.tire tire;}public void init() {tire.init();}}static class Tire {private int size;public Tire(int size) {this.size size;}public void init() {System.out.println(轮胎 size);}}
}代码经过以上调整⽆论底层类如何变化整个调⽤链是不⽤做任何改变的这样就完成了代码之间的解耦从⽽实现了更加灵活、通⽤的程序设计了
2.3 对⽐总结规律
在传统的代码中对象创建顺序是Car - Framework - Bottom - Tire 改进之后解耦的代码的对象创建顺序是Tire - Bottom - Framework - Car 我们发现了⼀个规律通⽤程序的实现代码类的创建顺序是反的传统代码是 Car 控制并创建了FrameworkFramework 创建并创建了 Bottom依次往下⽽改进之后的控制权发⽣的反转不再是上级对象创建并控制下级对象了⽽是把下级对象注⼊将当前对象中下级的控制权不再由上级类控制了这样即使下级类发⽣任何改变当前类都是不受影响的这就是典型的控制反转也就是 IoC 的实现思想
三、理解 Spring IoC
回到我们的主题Spring本⽂刚开始咱们就讲Spring 是包含了多个⼯具⽅法的 IoC 容器这就是对 Spring 最核⼼的总结。“集成多个⼯具⽅法”这事咱们以后慢慢再讲那如何理解“Spring 是⼀个 IoC容器”这句话呢
既然 Spring 是⼀个 IoC控制反转容器重点还在“容器”⼆字上那么它就具备两个最基础的功能
将对象存⼊到容器从容器中取出对象
也就是说学 Spring 最核⼼的功能就是学如何将对象存⼊到 Spring 中再从 Spring 中获取对象的过程 将对象存放到容器中的好处将对象存储在 IoC 容器相当于将以后可能⽤的所有⼯具制作好都放到仓库中需要的时候直接取就⾏了⽤完再把它放回到仓库。⽽ new 对象的⽅式相当于每次需要⼯具了才现做⽤完就扔掉了也不会保存下次再⽤的时候还得重新做这就是 IoC 容器和普通程序开发的区别 Spring 是⼀个 IoC 容器说的是对象的创建和销毁的权利都交给 Spring 来管理了它本身⼜具备了存储对象和获取对象的能⼒
四、DI 概念说明
说到 IoC 不得不提的⼀个词就是“DI”DI 是 Dependency Injection 的缩写翻译成中⽂是“依赖注 ⼊”的意思。
所谓依赖注⼊就是由 IoC 容器在运⾏期间动态地将某种依赖关系注⼊到对象之中。所以依 赖注⼊DI和控制反转IoC是从不同的⻆度的描述的同⼀件事情就是指通过引⼊ IoC 容 器利⽤依赖关系注⼊的⽅式实现对象之间的解耦
IoC 是“⽬标”也是⼀种思想⽽⽬标和思想只是⼀种指导原则最终还是要有可⾏的落地⽅案⽽ DI 就属于具体的实现 ⽐如说我今天⼼情⽐较好吃⼀顿好的犒劳犒劳⾃⼰那么“吃⼀顿好的”是思想和⽬标是 IoC 但最后我是吃海底捞还是杨国福这就是具体的实现就是 DI 五、总结 Spring 是什么如何理解 Spring IoC 和 DI 是啥有什么区别 Spring 最核⼼的功能是啥
- 上一篇: 萧山区网站建设沈阳网站制作费用
- 下一篇: 销帮帮crm怎么样网站文字很少怎么做优化
相关文章
-
萧山区网站建设沈阳网站制作费用
萧山区网站建设沈阳网站制作费用
- 技术栈
- 2026年04月20日
-
萧山建设局网站首页网页制作讲解视频
萧山建设局网站首页网页制作讲解视频
- 技术栈
- 2026年04月20日
-
萧山建设局网站首页广州黄埔网站建设公司哪家好
萧山建设局网站首页广州黄埔网站建设公司哪家好
- 技术栈
- 2026年04月20日
-
销帮帮crm怎么样网站文字很少怎么做优化
销帮帮crm怎么样网站文字很少怎么做优化
- 技术栈
- 2026年04月20日
-
销售网站建设常遇到的问题网站建设问题调查
销售网站建设常遇到的问题网站建设问题调查
- 技术栈
- 2026年04月20日
-
销售网站是什么怎么样把网站做火
销售网站是什么怎么样把网站做火
- 技术栈
- 2026年04月20日






