• Spring的ioc(DI)复习概念和原理简介


    IOC的好处

    ioc或者说di的概念很显然了,反转控制和依赖注入,那本来直接new就行的东西,为什么要搞这么复杂呢??

    1. 开发维护方便,高层设计不用依赖底层的,不然底层一个类改下构造器,高层就全要改,因为依赖很严重,而控制反转后,只要把底层的类当作参数一样传到高层中就好。举例就是一个汽车类中要用到轮子类,轮子类如果构造器要改的话,汽车类中的new就也要改。
    2. 创建实例的时候,不用知道那个类的构造器,或者说要怎么构造,new它之类的。不用写很多new,ioc会对你需要的对象进行初始化,你只要维护一个beans的configuration就好了。

    这篇介绍IOC的好处介绍的不错——https://www.jianshu.com/p/ad05cfe7868e

    IOC的原理简介

    IOC容器的技术剖析
    IOC中最基本的技术就是“反射(Reflection)”编程,目前.Net C#、Java和PHP5等语言均支持,其中PHP5的技术书籍中,有时候也被翻译成“映射”。有关反射的概念和用法,大家应该都很清楚,通俗来讲就是根据给出的类名(字符串方式)来动态地生成对象。这种编程方式可以让对象在生成时才决定到底是哪一种对象。反射的应用是很广泛的,很多的成熟的框架,比如象Java中的Hibernate、Spring框架,.Net中 NHibernate、Spring.Net框架都是把“反射”做为最基本的技术手段。


    反射技术其实很早就出现了,但一直被忽略,没有被进一步的利用。当时的反射编程方式相对于正常的对象生成方式要慢至少得10倍。现在的反射技术经过改良优化,已经非常成熟,反射方式生成对象和通常对象生成方式,速度已经相差不大了,大约为1-2倍的差距。

    我们可以把IOC容器的工作模式看做是工厂模式的升华,可以把IOC容器看作是一个工厂,这个工厂里要生产的对象都在配置文件中给出定义,然后利用编程语言的的反射编程,根据配置文件中给出的类名生成相应的对象。从实现来看,IOC是把以前在工厂方法里写死的对象生成代码,改变为由配置文件来定义,也就是把工厂和对象生成这两者独立分隔开来,目的就是提高灵活性和可维护性。

    这篇是IOC的原理的简单剖析:https://www.cnblogs.com/superjt/p/4311577.html

  • 相关阅读:
    Java代码检测工具
    java编程工具
    100-days: The one day
    前端书籍整理
    vue 学习笔记(二)
    从零开始写一个npm包及上传
    Vue Baidu Map 插件的使用
    对数组对象进行过滤
    使用css方法使footer保持在页面的最底部
    判断是第一次打开界面?还是刷新
  • 原文地址:https://www.cnblogs.com/wangshen31/p/10518938.html
Copyright © 2020-2023  润新知