需要實現兩個功能mvc和ioc容器:
下面是springmvc的**
@controller
public
class
indexcontroller
}
對於ioc容器則通過@autowire註解 將例項從容器中依賴注入
我們並沒有直接new出乙個controller物件,及其他bean元件 所以controller物件的例項化,方法的呼叫都是由框架用類載入器載入後通過反射來完成。
在springmvc或spring中我們在xml裡有這個配置
設定元件掃瞄的包
所以框架的實現思路大致如下
ioc:
設定乙個包路徑 獲取這個包下所有的class
通過class.forname反射載入物件
在乙個靜態**塊中維護乙個hashmap作為ioc容器常駐記憶體
通過newinstance例項化物件 並加入上面的map
通過isannotationpresent 判斷這個bean是否加了你要的註解 例如@controller @service @autowire等等
如果註解了autowire 則在map裡找到對應的bean 通過setfiled注入這個依賴
用乙個靜態**塊 初始化上面的操作 即可實現
自己實現乙個棧 Java
思路 1 使用鍊錶實現乙個棧,便於擴容 不用考慮陣列擴容場景 維護根節點和最 棧的節點 2 節點中維護pre指標,便於pop 時快速找到上乙個節點 package com.datastructure.stackqueue 實現乙個棧,自定義棧,用鍊錶實現,方便擴容 public class defi...
乙個自己實現的rpc框架
整合spring配置 檔案頭部加入rpc的namespace 服務端 服務端標籤 其中,protocol標籤屬性分析 port指定服務端繫結的埠 service標籤屬性分析 inte ce指定介面的完整類名,ref指定實現類的id,且該實現類必須放入spring容器中service標籤也可 以用註解...
自己寫乙個框架
自己寫乙個框架 單入口mvc 類 庫 屬於擴充套件 乙個好的配置檔案和讀取功能 db介面 dispather.php index.php dispather 分析controller action 根據分析controller action 動態載入 引入乙個自動載入機制 controller.ph...