zoukankan      html  css  js  c++  java
  • 20200909--spring基础-IOC

    一、IOC思想:

    之前,程序是主动创建对象,控制权掌握在程序猿手中

    使用set注入后,程序不再具有主动性,而是被动得接收对象

    从本质上解决了问题,程序猿不用再去管理对象得创建了,系统得耦合性降低,可以专注在业务实现上,这就是IOC得原型

    IOC是一种设计思想,DI是它的一种实现方式

    所谓控制反转,就是获取依赖对象的方式反转了

     采用xml方式配置bean的时候,bean的定义信息和实现是分离的

    采用注解的方式,可以把两者合为一体,bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的

    控制反转,是通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式

    在spring中,实现控制反转的是IOC容器,其实现方法是依赖注入

    Hello对象是由谁创建的?Spring

    Hello对象的属性是由谁创建的?Spring

     控制:谁来控制对象的创建,传统应用程序的对象是由程序本身控制创建的,使用spring后,对象是由spring来创建的

    反转:程序本身不创建对象,而是被动接受对象

    这个过程就是控制反转

    依赖注入:利用set方法来进行注入的

    IOC:对象由spring来创建,管理,装配

    二、IOC创建对象的方式

    1. 使用无参构造函数创建对象,默认实现

    2. 使用有参构造函数创建对象

    2.1 使用下标的方式

    2.2 使用类型的方式--不建议使用,类型容易写错,且多个string类型不适用

     2.3 直接通过参数名---重点掌握,这个就够了

    备注:所有的bean在注册的时候,就已经被容器实例化了,不管你是否引用它

    总结:

    1. 配置文件加载的时候,容器中管理的对象就已经初始化了

  • 相关阅读:
    git diff
    升级xcode10.0, 终端运行 运行报错:Print: Entry, “:CFBundleIdentifier”, Does Not Exist
    Xcode10.0: NO BUNDLE URL PRESENT
    Xcode10:The operation couldn’t be completed. (DVTCoreSimulatorAdditionsErrorDomain error 0.)
    Xcode 10 Error: Multiple commands produce
    Node.js 中 __dirname 和 ./ 的区别
    aplipay支付-app支付之前后端实现
    容联云短信接口使用
    CryptoJS中WordArray
    react-native布局中的层级问题(zIndex,elevation)
  • 原文地址:https://www.cnblogs.com/vivian-xiaoyun/p/13646120.html
Copyright © 2011-2022 走看看