private string configlocations;
private v1beandefinitionreader reader;
//用來保證註冊式單例的容器
private mapsingletonbeancachemap = new hashmap();
//用來儲存所有的被**過的物件
...}
從getbean()開始
下面,我們從完善getbean()方法開始:
//依賴注入,從這裡開始,通過讀取beandefinition中的資訊
//然後,通過反射機制建立乙個例項並返回
//裝飾器模式:
//1、保留原來的oop關係
//2、我需要對它進行擴充套件,增強(為了以後aop打基礎)
public object getbean(string beanname) throws exception
// //class b
// //先有雞還是先有蛋的問題,乙個方法是搞不定的,要分兩次
postprocessor.postprocessafterinitialization(instance,beanname);
// //3、注入
}// v1beandefinition.getbeanclassname();
//判斷只有加了註解的類,才執行依賴注入
if(!(clazz.isannotationpresent(v1controller.class) || clazz.isannotationpresent(v1service.class)))
//獲得所有的fields
field fields = clazz.getdeclaredfields();
for (field field : fields)
v1autowired autowired = field.getannotation(v1autowired.class);
string autowiredbeanname = autowired.value().trim();
if("".equals(autowiredbeanname))
//強制訪問
field.setaccessible(true);
try
// if(instance == null)
} catch (illegalacces***ception e)
}}
public class v1beanpostprocessor
public object postprocessafterinitialization(object bean, string beanname) throws exception
}
至此,di 部分就完成了。 DI依賴注入
1.依賴注入的概念 作用 給建立好的物件中的全域性的屬性或者物件進行賦值的操作 2.di的意義 解除類與類之間高耦合性,給物件中全域性物件賦值的操作 3.di和ioc的關係 是同乙個事情 spring幫助建立物件的過程叫做ioc,建立物件時給物件中全域性物件賦值叫做di,所以認為ioc和di是同乙個...
依賴注入DI
依賴ioc環境,注入屬性值 首先需要有bean的配置,然後才能往裡面弄注入屬性 spring在建立類的過程中將類的屬性設定進去。如果屬性是基本資料型別 那麼就使用 value 注意 在這裡 string也是基本資料型別 如果是引用資料型別,那麼就使用 ref 需要建立對應的類物件注入 首先先寫屬性注...
Spring依賴注入(DI)
在spring框架中,依賴注入 di 的設計模式是用來定義物件彼此間的依賴。它主要有兩種型別 這是最流行最簡單的di注入方法,通過設定方法注入依賴。示例 幫助器類和指定的setter方法 package com.yiibai.output import com.yiibai.output.ioutp...