当前位置: 首页 > news >正文

绑定手机网站文件夹邦策网站建设平台

绑定手机网站文件夹,邦策网站建设平台,设计报告书怎么写,让别人做网站的话术目录 1. Spring 是什么#xff1f; 1.1 什么是容器#xff1f; 1.2 什么是 Ioc #xff1f; 1.2.1 传统程序开发 1.2.2 解决传统开发的缺陷 1.2.3 控制反转式程序开发 1.2.4 IoC 的实现思想#xff08;重点#xff09; 1.3 理解 Spring Ioc 1.4 DI 概念说明 1. S…目录 1. Spring 是什么 1.1 什么是容器 1.2 什么是 Ioc 1.2.1 传统程序开发 1.2.2 解决传统开发的缺陷 1.2.3 控制反转式程序开发 1.2.4 IoC 的实现思想重点 1.3 理解 Spring Ioc 1.4 DI 概念说明 1. Spring 是什么 Spring 指的是 Spring Framework spring 框架它是一个开源框架有着活跃而庞大的社区这就是它之所以能长久不衰的原因。 Spring 是包含了众多工具方法的 IoC 容器。 1.1 什么是容器 容器是用来容纳某种物品的装置。 List/Map - 数据存储容器   Tomcat - Web容器 1.2 什么是 Ioc IoC Inversion of Control 即 控制反转也就是说 Spring 是一个“控制反转”的容器。 1.2.1 传统程序开发 是通过一层一层的依赖实现的。比如我们要构建一辆车需要依赖车身车身进而需要依赖底盘底盘又需要依赖轮胎。因此一般的实现代码如下 在 NewCarUpateExample 类中 public class NewCarUpateExample {public static void main(String[] args) {Car car new Car();car.init();} } 首先我们先创建一个汽车对象 /*** 汽车对象*/ public class Car {public void init(){// 依赖车身Framework framework new Framework();framework.init();} } 由于汽车对象需要依赖车身因此我们创建一个车身类 /*** 车身类*/ public class Framework {public void init(){// 依赖底盘Bottom bottom new Bottom();bottom.init();} }又因为车身依赖于底盘因此创建底盘类 /*** 底盘类*/ public class Bottom {public void init(){// 依赖轮胎Tire tire new Tire();tire.init();} } 最后因为底盘依赖于轮胎因此创建轮胎类 /*** 轮胎类*/ public class Tire {// 轮胎尺寸private int size 30;public void init(){System.out.println(轮胎尺寸 size);} }在以上程序中轮胎的尺寸是固定的但是实际中根据各种需求轮胎的尺寸也会发生变化因此修改代码如下 在 NewCarUpateExample 类中 public class NewCarUpateExample {public static void main(String[] args) {Car car new Car(20);car.run();} } /*** 汽车对象*/ public class Car {private Framework framework;public Car(int size){framework new Framework(size);}public void run(){// 依赖车身framework.init();} } /*** 车身类*/ public class Framework {private Bottom bottom;public Framework(int size){bottom new Bottom(size);}public void init(){// 依赖底盘bottom.init();} } /*** 底盘类*/ public class Bottom {private Tire tire;public Bottom(int size){tire new Tire(size);}public void init(){// 依赖轮胎tire.init();} }/*** 轮胎类*/ public class Tire {// 轮胎尺寸private int size;public Tire(int size){this.size size;}public void init(){System.out.println(轮胎尺寸 size);} }从以上代码可以看出当最底层的代码修改后其他层的代码均需要进行修改。 1.2.2 解决传统开发的缺陷 如何解决代码之间的耦合性过高的问题呢 我们只需要将原来自己创建的下级类改为传递的方式也就是注入因为我们不需要在当前类中创建下级类所以下级类发生变化时当前类本身就无需再进行修改这样就完成了程序的解耦。 1.2.3 控制反转式程序开发 接下来在上述程序的基础上我们将创建子类的方式改为注入传递的方式。 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();} } /*** 汽车对象*/ public class Car {private Framework framework;public Car(Framework framework){this.framework framework;}public void run(){// 依赖车身framework.init();} } /*** 车身类*/ public class Framework {private Bottom bottom;public Framework(Bottom bottom){this.bottom bottom;}public void init(){// 依赖底盘bottom.init();} } /*** 底盘类*/ public class Bottom {private Tire tire;public Bottom(Tire tire){this.tire tire;}public void init(){// 依赖轮胎tire.init();} }/*** 轮胎类*/ public class Tire {// 轮胎尺寸private int size;public Tire(int size){this.size size;}public void init(){System.out.println(轮胎尺寸 size);} }代码经过以上调整之后无论底层如何变化整个调用链是不用做任何改变的这样就完成了代码之间的解耦。 1.2.4 IoC 的实现思想重点 在传统代码中对象创建的规律是Car - Framework - Bottom - TIre 改进之后解耦的代码的对象创建顺序是TIre - Bottom - Framework - Car 改进之后的控制权发生的反转不再是上级对象创建并控制下级对象了而是把下级对象注入当前对象中下级的控制权不再由上级类控制了这样即使下级类发⽣任何改变当前类都是不受影响的这就是典型的控制反转也就是 IoC 的实现思想。  对于依赖对象的管理的控制权反转通过 Spring 来管理对象的生命周期。不是所有的对象都交给 Spring 管理需要程序来告诉 Spring 管理哪些对象。 1.3 理解 Spring Ioc 既然 Spring 是⼀个 IoC控制反转容器重点还在“容器”⼆字上那么它就具备两个最基础的功 能 将对象存入到容器从容器中取出对象。 也就是说学 Spring 最核心的功能就是学如何将对象存入到 Spring 中再从 Spring 中获取对象的过程。 将对象存放到容器中的好处将对象存储在 IoC 容器相当于将以后可能⽤的所有工具制作好都放到仓库中需要的时候直接取就行了用完再把它放回到仓库。而 new 对象的方式相当于每次需要工具了才现做用完就扔掉了也不会保存下次再⽤的时候还得重新做这就是 IoC 容器和普通程序开发的区别。 Spring 是⼀个 IoC 容器即对象的创建和销毁的权利都交给 Spring 来管理了它本身又具备了存储对象和获取对象的能力。 1.4 DI 概念说明 DI 是 Dependency Injection 的缩写即 依赖注入。 所谓依赖注⼊就是由 IoC 容器在运行期间动态地将某种依赖关系注⼊到对象之中通过构造函数把依赖对象注入进来。所以依赖注⼊DI和控制反转IoC是从不同的⻆度的描述的同⼀件事情就是指通过引入 IoC 容器利用依赖关系注入的⽅式实现对象之间的解耦。 IoC 是“目标”也是⼀种思想而目标和思想只是⼀种指导原则最终还是要有可行的落地⽅案而 DI就属于具体的实现即 IoC 是思想DI 是具体实现。
http://www.yutouwan.com/news/135002/

相关文章:

  • 建设厅网站查询电工证件学做ppt的网站 免费下载
  • 网站建设企业熊掌号网站建设和管理维护
  • 设计师做网站的流程wordpress 六亩填
  • 课程网站怎么做个人网站icp备案
  • 建设银行app官方下载湖南网站营销seo哪家好
  • 商城网站备案能通过吗乐清上班族网论坛
  • 共享ip服务器做网站蓝屏的钙 WordPress
  • 诚信网站体系建设工作遵义网站开发公司电话
  • 金华企业网站建站模板沈阳网站建设成创
  • 怎么样给一个网站做横向导航栏微网站建设需付费吗
  • wordpress产品网站宁阳县住房和城乡建设局网站
  • 网站假设公司排名自己做的网站怎么管理用户
  • 自己能做网站吗esuwiki wordpress
  • 网站不用模板如何更新文章自己建站流程
  • 网站设计与规划作业seo网站关键词排名快速
  • wex5网站开发wordpress浏览器跳转
  • 网站开发外包计入什么科目建设银行招生网站
  • 烟台网站建设推广wordpress英文切换
  • 免费的舆情网站app网络程序员
  • 美食网站建设多少钱网站热力图工具
  • 新开传奇网站发布网单职业微信怎么开通公众号
  • 公司网站定制开发西安未央网站建设
  • 手机网站制作平台网站搭建公司案例网址
  • 什么网站教做医学实验报告云浮网站建设
  • 做网站的专业词汇开发公司税金计算基数
  • 做编程网站有哪些方面wordpress loren
  • 网站开发项目团队公众号做漫画网站
  • 网站排名查询用cms建网站
  • 欧派网站谁做的网站模板好
  • 电子商务网站建设的一般过程lamp网站开发项目文档