自己實現乙個Java框架 一 思路

2021-08-01 01:29:56 字數 687 閱讀 6076

需要實現兩個功能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...