zoukankan      html  css  js  c++  java
  • spring核心之IOC

    spring IOC   控制反转    核心思想

    了解IOC,首先需要了解DI  --- 软件设计的重要思想            依赖注入

    什么事依赖注入呢?

    例子:设计行李箱类

    传统写法:首先设计轮子,根据轮子设计底盘,根据底盘设计箱体。OK,设计完成。

                换成java中类的描述:1.轮子类:Class Tire { int size;//轮子大小   Tire(){this.size = 20;}}   2.底盘类 : Class Botton {Tire tire;//轮子   Botton(){this.tire = new  tire;}}

                                                   3.箱体类:Class FrameWork{ Botton botton;//底盘  FramWork() {this.botton = new  botton;}}

                                                  生成一个行李箱:new FrameWork();

             上层建筑依赖下层建筑。每当需要设计一个新式的行李箱,则需要从轮子到箱体全部需要重新写代码,严重违反了代码的可重用性;

    DI写法:首先设计箱体,根据箱体选择底盘,根据底盘选择轮子。OK,设计完成。

                换成java中类的描述:1.轮子类:Class Tire { int size;//轮子大小   Tire(int size){this.size = size;}}   2.底盘类 : Class Botton {Tire tire;//轮子   Botton(Tire tire){this.tire =  tire;}}

                                                   3.箱体类:Class FrameWork{ Botton botton;//底盘  FramWork(Botton botton) {this.botton = botton;}}

                                                  生成一个行李箱:Tire tire = new Tire(20); Botton botton = new Botton(tire);FrameWork frameWork = new FrameWork(botton);

            上层建筑控制下层建筑。将轮子,底盘类,箱体类设计成接口设计,每次只需在main方法中注入即可,不需要修改过多的代码量,需要什么样的轮子全部继承轮子接口。

    依赖注入减少了我们重复修改源代码。

    依赖注入的几种方式:setter方法,Construsctor构造方法注入(上面实现的那种)

    当然我们的IOC可不止这点技能,我们的IOC作为容器的存在,当然是海纳百川

    1.bean工厂,将各种bean对象注入到IOC容器中统一维护,做到随用随取。隐藏了各种注入细节。

    IOC容器运行机制:

    实例化bean运用到了java的反射机制

    IOC容器支持的功能:依赖注入,依赖检查,自动装配,支持集合,指定初始化的销毁方法(这就和spring的另一个基础核心内容AOP相关),支持回调方法。

  • 相关阅读:
    前端页面适配的rem换算
    Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法
    ES5, ES6, ES2016, ES.Next: What's going on with JavaScript versioning?
    国内的Android SDK镜像
    虚拟串口VSPD破解版 亲测win10 64可用
    Mybatis : "less than" issue in Select annotations
    如何在MyBatis中优雅的使用枚举
    Adding a custom jar as a maven dependency
    Error: Invalid or corrupt jarfile
    使用Json让Java和C#沟通的方法
  • 原文地址:https://www.cnblogs.com/ZTYCandy/p/11438534.html
Copyright © 2011-2022 走看看