IOC的底层原理

控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
使用 IOC 目的:为了耦合度降低

IOC的底层原理:xml解析,工厂模式,反射

IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂

Spring提供IOC容器实现两种方式:(两个接口)

  • BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员使用
    *加载配置文件的时候不会创建对象,获取(使用)对象的时候才会创建对象

    @Test
    public void test(){
        //加载spring配置文件
        BeanFactory applicationContext =
                new ClassPathXmlApplicationContext("bean1.xml");
        //获取配置文件创建的对象
        User user = applicationContext.getBean("user", User.class);
        System.out.println(user);
        user.add();
    }
    
  • ApplicationContext:BeanFactory的子接口,提供了更多更强大的功能,一般由开发人员进行使用
    *加载配置文件的时候就会创建配置文件的对象。

    @Test
    public void test(){
        //加载spring配置文件
        ApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("bean1.xml");
        //获取配置文件创建的对象
        User user = applicationContext.getBean("user", User.class);
        System.out.println(user);
        user.add();
    }
    

    ApplicationContext接口的实现类:在这里插入图片描述

ClassPathXmlApplicationContext和FileSystemXmlApplicationContext区别:

  • ClassPathXmlApplicationContext
    默认文件路径是src下那一级

  • FileSystemXmlApplicationContext
    这个类,默认获取的是项目路径,默认文件路径是项目名下一级,与src同级。
    如果前边加了file:则说明后边的路径就要写全路径了,就是绝对路径
    file:D:/workspace/applicationContext.xml

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章