• IOC和DI


    Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制(传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象)。

    有了IoC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。

    DI—Dependency Injection,即“依赖注入”:是组件之间依赖关系由容器在运行期决定

    由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率

    谁依赖于谁:当然是应用程序依赖于IoC容器;

    为什么需要依赖:应用程序需要IoC容器来提供对象需要的外部资源;

    谁注入谁:很明显是IoC容器注入应用程序某个对象,应用程序依赖的对象;

    ●注入了什么:就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)。

    程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装。在Spring中BeanFactory是IoC容器的实际代表者(已过时)。使用其扩展的ApplicationContext

    取配置文件中的配置元数据,通过元数据对应用中的各个对象进行实例化及装配

    由IoC容器管理的那些组成你应用程序的对象我们就叫它Bean, Bean就是由Spring容器初始化、装配及管理的对象

    Ioc容器的代表就是org.springframework.beans包中的BeanFactory接口

    org.springframework.context包下的ApplicationContext接口扩展了BeanFactory

    xml的配置

    1、<bean>标签主要用来进行Bean定义;

    2、alias用于定义Bean别名的;

    3、import用于导入其他配置文件的Bean定义,这是为了加载多个配置文件,当然也可以把这些配置文件构造为一个数组(new String[] {“config1.xml”, config2.xml})传给ApplicationContext实现进行加载多个配置文件,那一个更适合由用户决定;这两种方式都是通过调用Bean Definition Reader 读取Bean定义,内部实现没有任何区别。<import>标签可以放在<beans>下的任何位置,没有顺序关系。

    容器目的就是管理Bean,这些Bean将根据配置文件中的Bean定义进行创建

    每个Bean可以有一个或多个id(或称之为标识符或名字),在这里我们把第一个id称为“标识符”,其余id叫做“别名”;这些id在IoC容器中必须唯一。

    使用静态工厂的方式进行实例化bean

     

    DI的配置

    set注入

    知道如何配置了,但Spring如何知道setter方法?如何将值注入进去的呢?其实方法名是要遵守约定的,setter注入的方法名要遵循“JavaBean getter/setter 方法命名约定”:JavaBean:是本质就是一个POJO类,但具有一下限制:

             该类必须要有公共的无参构造器,如public HelloImpl4() {};

             属性为private访问级别,不建议public,如private String message;

             属性必要时通过一组setter(修改器)和getter(访问器)方法来访问

    List集合注入 

    set集合注入

    map集合注入

     

  • 相关阅读:
    晃动提示效果
    弹出框(dialog)制作
    日期选择组件
    背景图合并
    css小常识
    学习总结
    新学习的开始
    河马搞笑GIF动态图网站(http://gif.hemaj.com)上线,老司机快上车!
    新项目上线,河马体育(http://www.hemaj.com)-足球即时比分、足球比分、足球比分直播、足球直播
    正规表达
  • 原文地址:https://www.cnblogs.com/doudouxiaoye/p/5758895.html
Copyright © 2020-2023  润新知