ioc原理簡述:所謂ioc,對於spring框架來說,就是由spring負責控制物件的生命週期和物件間的關係。說白了也就是我們在建立物件時,由原先的程式設計師建立物件反轉為由容器控制這些操作,在bean工廠中建立物件,程式設計師只需要在使用某個物件時直接從容器中獲取。
1、配置需要容器進行管理的bean檔案。bean檔案中配置id和class。容器中根據配置中的id獲取到類的全限定名(com.xoyar.dao.impl.userdaoimpl),利用反射機制建立物件。
反射:class.forname("全限定名").newinstance()
<?xml version="1.0" encoding="utf-8"?>
2、這裡到了ioc的核心部分。我們首先建立beanfactory介面,這裡包含乙個getbean的方法,用來獲取bean。/**3.1、建立容器,這裡用到map。
3.2.1、構造方法中的具體實現見**注釋。
ps:此處解析xml用到了jdom-1.0.jar。
* bean工廠的實現類,在此類中利用反射建立所有需要的物件並存放在容器中。
* 不需要手動建立物件
* 需要物件時可在bean工廠直接獲取getbean()
*/ /**
* 建立容器
*/mapbeans = new hashmap<>();
/*** 通過反射機制根據類的全限定名,建立類物件
* 在載入容器時就初始化xml檔案中配置的所有物件
*///使用jdom包中的saxbuilder解析xml檔案
saxbuilder saxbuilder = new saxbuilder();
//將beans.xml載入到document中
document document = saxbuilder.build(this.getclass().getclassloader().getresourceasstream("beans.xml"));
//先獲取根元素,再用根元素獲取子元素element rootelement = document.getrootelement();
list list = rootelement.getchildren("bean");
//獲取每個元素的id和class
for (int i=0;i
IOC容器簡介
了解到spring框架的兩大核心模組 ioc容器和aop 原始碼分析首先從ioc容器開始,之後再來看aop 這一篇我們先來了解一下什麼是ioc容器,以及ioc容器的功能 1 正常開發模式 非依賴反轉 正常的,合作物件的引用或依賴關係的管理由具體物件來完成 持有被引用的物件 這導致了 高度耦合並且降低...
手寫spring IOC容器
基本思路 解析xml配置檔案 根據配置的生成相應的物件 將物件存入ioc容器 ioc容器實現 1.0 encoding utf 8 address class com.example.xmlsax reader.entity.address city value fuzhou user class ...
Ioc容器Autofac介紹
先看乙個例子 首先新建乙個工程,新增autofac引用。準備 和之前的一樣 inte ce idal class sqlserverdal idal class oracledal idal 接下來就是ioc的實現了 class datafactory 接下來就是獲取物件的例項並呼叫 static ...