已經分析過dispatcherservlet主要的任務,分為五個任務,任務1:把專案中所有的bean掃瞄,進行維護,我們已經完成,現在第二個任務:根據全類名建立bean例項,並進行維護;
1.如何通過類的資訊,獲得這個類的類型別
class<?> c1 = class.forname("com.tx.foo");
2.知道乙個類的類型別,可以做什麼?
可以建立該類的物件: demo = c1.newinstance();
可以獲得該類的所有屬性:field fs = c1.getfields()
可以獲得該類的所有方法:method methods = c1.getmethods();
可以獲得該類的所有構造方法: constructor cs = c1.getconstructors();
3.獲得了以上資訊可以做什麼?
獲得了方法就可以通過這個方法物件,通過 method.invoke(物件,引數列表) 呼叫方法
4.可以通過物件獲得類型別嗎?答案,當然可以
foo f1 = new foo();
c2 = f1.getclass();
5.當然也可以直接通過如下的寫法獲得類型別:
c3 = foo.class;
之所以寫這麼多的反射知識點,是因為,之後的任務中都要大量用到,所以提前預習一下!
任務二,根據全類名建立bean例項,並進行維護;**如下
//根據掃瞄的list類名,進行例項化
private void doinstance()
for(string classname:classnames)else if(clas.isannotationpresent(myservice.class))else
} catch (classnotfoundexception e) catch (instantiationexception e) catch (illegalacces***ception e)
} }
其中維護bean例項,定義了成員變數:
mapbeans = new hashmap();
自己動手寫SpringMVC 四
本文將主要實現dispatcherservlet!之前已經分析過dispatcherservlet主要的任務,分為五個任務,我們從任務一開始開始實現!任務1 把專案中所有的bean掃瞄,進行維護 實現 如下 private void scanpackage string basepackage el...
自己動手寫bootloader
原始出處 作者資訊和本宣告。否則將追究法律責任。為了寫乙個bootloader讓板子跑起來,首先我們要知道bootloader是個什麼東東才行。簡單的說,bootloader就是乙個引導核心啟動的一段小 也就是說當啟動完核心之後,它的使命就已經結束。bootloader生命週期 初始化硬體 設定啟動...
自己動手寫CMS
簡易的cms外掛程式,可供借鑑或者擴充套件 流程 定義內容 分類與組織內容 儲存內容 操作控制內容 定義內容 制定目標 確定需要的內容型別 目標使用者定位 確定目標使用者需要何種技術 分類與組織內容 按內容所屬的邏輯層級關係來劃分 按內容的種類來劃分,比如video text audio等等 儲存內...