手寫spring ioc容器遇到的坑

2021-10-24 21:32:13 字數 702 閱讀 6866

寫web的時候發現,tomcat啟動起來,但是無法注入自己手寫的bean物件,查了原因發現,tomcat啟動有自己的容器,換句話說,不會初始化我寫的容器,解決辦法是,自己手寫了***,在web.xml中配置***,來完成容器物件中beans的初始化。

tomcat生命名週期及容器初始化過程

為什麼是servlet***,不是session後者request***,因為按照spring建立的bean,大部分是singleton的,而且一次建立,整個專案可用。如果是session或者request***,那麼每次新的session或者request就需要重新建立容器。

繼承servletcontextlistener 實現

public class beanfactory implements servletcontextlistener

實現servletcontextlistener的方法

public inte***ce servletcontextlistener extends eventlistener

思路是:

根據專案根路徑,掃瞄路徑下所有類。

進行載入,並判斷是否帶有指定的自定義註解類。

有註解,加入map容器。

取map容器中的每個例項,遍歷。

判斷屬性是否有@autowired自定義註解,有就遞迴得到依賴關係。

這裡容器的初始化基本完成。

手寫spring IOC容器

基本思路 解析xml配置檔案 根據配置的生成相應的物件 將物件存入ioc容器 ioc容器實現 1.0 encoding utf 8 address class com.example.xmlsax reader.entity.address city value fuzhou user class ...

(一)手寫spring IOC容器

設計bean工廠介面 如何告訴他建立bean?建立什麼bean?bean工廠實現 畫完整uml類圖 編寫 測試總結 1.ioc是什麼?ioc inversion of control 控制反轉,也稱依賴倒置反轉。反 依賴物件的獲得權被反轉了,由自己建立,變為從ioc容器獲取,和自動注入。2.帶來什麼...

手寫SpringIOC 實現原理

spring ioc 指的是控制反轉,ioc容器負責例項化 定位 配置應用程式中的物件及建立這些物件間的依賴。交由spring來管理這些,實現解耦 使用反射機制 xml技術 手寫spring專題 xml方式注入bean 手寫spring 專題xml 方式注入 bean publicclass xml...