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

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