Spring的依赖注入(DI)和控制反转(IOC)

来源:互联网 发布:域名年费多少钱 编辑:程序博客网 时间:2024/06/05 11:12

springDI(依赖注入):给属性赋值就为依赖注入

publicclass Person{

    private Long pid;//代表基本类型的包装类

    private String pname;//String类型

    private Student student;//引用类型

    private List lists;

    private Set sets;

    private Map map;

    private Properties properties;

    //set和get方法

}

ioc和di做了什么事情呢?

  *  创建对象

  * 给属性赋值

ioc和di的意义:

  可以在一个类中引入一个接口,而给接口赋值的工作交给spring容器来做,程序员只需要在配置文件做一些配置就可以了,这样在客户端做到了完全的面向接口编程


spring的IOC:

  * IOC:spring容器控制对象的生命周期:前提条件:在spring容器中的bean必须是单例的

       * 创建

          * 方式

             * 利用默认的构造函数,如果没有默认的构造函数,会报错

             * 利用静态工厂方法

             * 利用实例工厂方法

          * 时机

             * lazy-init为“default/false”当启动spring容器的时候创建bean

                 但是如果该bean是prototype时,特殊。这种情况无效

                  *  在spring容器启动的时候,就会发现错误

                  *  有可能会造成一些数据长时间驻留在内存中

             * lazy-init为"true"当context.getBean时创建

                  bean为多例时,必须用这种方案创建对象

                  *  不能及时发现错误

                  *  数据会在需要的时候加载

       * 初始化

            * 由spring容器调用init方法

            * 在构造函数之后执行

       * 销毁

            * 如果是单例,则必须返回ClassPathXmlApplicationContext该容器,才能执行销毁工作

            * 如果是多例,容器不负责销毁


0 0
原创粉丝点击