欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

IOC的底层原理

程序员文章站 2022-05-24 09:48:47
...

控制反转,把对象创建和对象之间的调用过程,交给 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接口的实现类:IOC的底层原理

ClassPathXmlApplicationContext和FileSystemXmlApplicationContext区别:

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

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

相关标签: Spring5