zoukankan      html  css  js  c++  java
  • spring中的IOC

    IOC:Inversion of Control 控制反转  

    spring核心容器也可以称为IOC容器,该容器主要负责管理各种对象的生命周期

    DI:Dependency Injection 依赖注入 (设置set)

    DI的概念的提出是用来解释IOC的,表示让调用类对某一接口实现类的依赖关系由容器注入

    IOC容器核心api(容器将来会是一个对象):

    BeanFactory接口

    ApplicationContext接口:该接口继承于BeanFactory,增强了BeanFactory

    配置文件:

    Spring通过读取配置文件中的数据来对项目各个对象进行实例化,配置以及组装,通常使用XML文件来作为配置文件

    对于spring配置一个bean时,如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程,spring的依赖注入有3种方式

    1.set方式注入(必须依靠类中的set方法)

      <!--property 对于所有用set方式来注入的必须使用该标签-->
           <!--value 是对于基本类型,都用value(标签/属性)来注入,可以实现自动的数据类型转换-->

    2.基于构造器注入

      在Bean中不用写set方法,但是要有与之相对应参数的构造器(一参,二参.....)

    3,自动注入 :容器依照一些规则去装配bean中的一个属性

    注意:自动装配只对[对象类型]起作用,对基本类型不起作用.

    只需要配置一个autowire属性即可完成自动装配,不用再配置文件中写<property>,但是在类中还是要生成依赖对象的setter方法。

    第一种情况:
                在beans标签中配置装载方式:default-autowire="byName"

                在根元素beans中加入这个属性,那么下面所有的bean都会
                使用byName的方式进行自动注入,如果在下面的某一个bean
                里面想使用其他的方式进行注入,可以用autowire=""属性进行
                说明,或者某一个bean不想使用任何自动注入就使用autowire="no"

            第二种情况:
                1,在bean标签中指定配置方式,autowire="byName":
                spring容器会到当前的类中找property的名字(setXxx中去掉set后的名字),然后Spring会在容器中自动寻找与属性名字相同的bean的id

       2,autowire="byType":

        spring容器会根据当前类中的set方法里面参数的类型,去容器中找相匹配的对象,

       3,autowire="constructor"
              根据构造器的参数类型去匹配

    只要在xml配置文件在写入一个bean标签,就会管理一个对象,标签里面的property是注入依赖的。

    IOC:Inversion of Control 控制反转  

    spring核心容器也可以称为IOC容器,该容器主要负责管理各种对象的生命周期

    DI:Dependency Injection 依赖注入 (设置set)

    DI的概念的提出是用来解释IOC的,表示让调用类对某一接口实现类的依赖关系由容器注入

    IOC容器核心api(容器将来会是一个对象):

    BeanFactory接口

    ApplicationContext接口:该接口继承于BeanFactory,增强了BeanFactory

    配置文件:

    Spring通过读取配置文件中的数据来对项目各个对象进行实例化,配置以及组装,通常使用XML文件来作为配置文件

    对于spring配置一个bean时,如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程,spring的依赖注入有3种方式

    1.set方式注入(必须依靠类中的set方法)

      <!--property 对于所有用set方式来注入的必须使用该标签-->
           <!--value 是对于基本类型,都用value(标签/属性)来注入,可以实现自动的数据类型转换-->

    2.基于构造器注入

      在Bean中不用写set方法,但是要有与之相对应参数的构造器(一参,二参.....)

    3,自动注入 :容器依照一些规则去装配bean中的一个属性

    注意:自动装配只对[对象类型]起作用,对基本类型不起作用.

    只需要配置一个autowire属性即可完成自动装配,不用再配置文件中写<property>,但是在类中还是要生成依赖对象的setter方法。

    第一种情况:
                在beans标签中配置装载方式:default-autowire="byName"

                在根元素beans中加入这个属性,那么下面所有的bean都会
                使用byName的方式进行自动注入,如果在下面的某一个bean
                里面想使用其他的方式进行注入,可以用autowire=""属性进行
                说明,或者某一个bean不想使用任何自动注入就使用autowire="no"

            第二种情况:
                1,在bean标签中指定配置方式,autowire="byName":
                spring容器会到当前的类中找property的名字(setXxx中去掉set后的名字),然后Spring会在容器中自动寻找与属性名字相同的bean的id

       2,autowire="byType":

        spring容器会根据当前类中的set方法里面参数的类型,去容器中找相匹配的对象,

       3,autowire="constructor"
              根据构造器的参数类型去匹配

     

    只要在xml配置文件在写入一个bean标签,就会管理一个对象,标签里面的property是注入依赖的。

  • 相关阅读:
    字典的增删改查
    基础数据类型
    Linux程序优化实践
    Linuxt性能调优指南
    【MySQL】Percona Toolkits工具介绍及使用
    【MySQL】如何构建高性能MySQL系统?
    【MySQL】Event使用案例
    【MySQL】事件调度器 (Event Scheduler)
    【MySQL】mydumper工具介绍
    spu与sku的含义
  • 原文地址:https://www.cnblogs.com/wskb/p/10939427.html
Copyright © 2011-2022 走看看