欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

手把手教你寫一個spring IOC容器的方法

 更新時間:2021年04月12日 11:16:51   作者:華為云  
這篇文章主要介紹了手把手教你寫一個spring IOC容器的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

本文分享自華為云社區(qū)《手把手教你寫一個spring IOC容器》,原文作者:技術(shù)火炬手。

spring框架的基礎(chǔ)核心和起點毫無疑問就是IOC,IOC作為spring容器提供的核心技術(shù),成功完成了依賴的反轉(zhuǎn):從主類的對依賴的主動管理反轉(zhuǎn)為了spring容器對依賴的全局控制。今天就帶大家手寫一個spring IOC容器。

第0步(準備工作):

(1)JDK1.8及java環(huán)境變量
(2)maven包及maven環(huán)境變量
(3)idea

第1步(創(chuàng)建項目,引入tomcat包)

PS:由于該項目的作用是模擬spring的部分功能,所以取名為spring

(1)創(chuàng)建好的項目內(nèi)容如下圖:

(2)pom文件的初始狀態(tài)如下:

第2步:搭建主體框架

PS:一個正常的spring項目一般分為controller和service部分,此處暫時忽略數(shù)據(jù)庫鏈接

(1)其中,TestController實現(xiàn)功能,返回name+“Hello World!”,引用TestService

(2)而TestService和TestServiceImpl則分別實現(xiàn)功能

第3步:創(chuàng)建,并打上標簽

PS:我們需要很多標簽,如service,controller,還有autowired等

(1)創(chuàng)建各種標簽(暫時創(chuàng)建這些標簽,后面不夠再加)

(2)打上標簽

由于RequestMpping后面需要跟路徑,所以此處需要重寫其value()方法,如下:

第4步:進入正題,創(chuàng)建一個DisPatcherServlet類,用于實現(xiàn)IOC容器功能

(1)DisPatcherServlet繼承HttpServlet(注意添加依賴),并重寫doGet,doPost方法

(2)創(chuàng)建一個doDispatcher方法,并被doPost引用

第5步:初始化

(1)暫停實現(xiàn)doDispatcher,去重寫初始化方法init,初始化共分為五大步驟,如下

注意:頂端要加上屬性類(Properties),且要resource中加application.properties,并加上scanPackage屬性,內(nèi)容為需掃描的根目錄

(2)加載配置文件實現(xiàn),需要先配置一個web.xml,路徑和內(nèi)容如下:

路徑:

內(nèi)容:

剩下的內(nèi)容,大家應該能看懂的吧

(3)下一步,使用遞歸,將所有class的路徑存入一個集合(classPaths)里面

(4)下一步,將打上了controller和service標簽的類放入ioc容器中

(5)下一步,注入(通過Autowired標簽從IOC容器中獲取實例對象并賦值)

(6)獲取所有的RequestMapping內(nèi)容,并寫到一個對象集合中

第6步:回頭實現(xiàn)doDisPatcher的步驟

(1)首先,設(shè)定404(class notfound)
(2)后面一半,實現(xiàn)接口功能
PS1:判斷url方法
PS2:根據(jù)url獲取方法
PS3:獲取方法下的所有參數(shù)

最后一步:執(zhí)行tomcat

so,

(1)你以為以上的內(nèi)容是對的嘛?
(2)你以為你能得到想要的結(jié)果嗎?

太天真了?。。?/p>

如果你按照我說的方法去運行,恭喜你,得到的結(jié)果是not found?。?!真正的挑戰(zhàn)才剛剛開始:

第一,標簽類的定義,如下,特別重要的是Target

還需要補充一個mapping

第二,TestController類中,RequestParam少了value屬性,如果沒有,則無法傳值。

第三,那么參數(shù)初始化,是不是也有一點問題呢?注意這段代碼,傳參的名字應該和什么相關(guān)?

好了 現(xiàn)在真的可以成功了~~~

看看結(jié)果吧。

完結(jié)撒花~~~

到此這篇關(guān)于手把手教你寫一個spring IOC容器的文章就介紹到這了,更多相關(guān)spring IOC容器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Swing中的表格(JTable)和樹(JTree)組件使用實例

    Java Swing中的表格(JTable)和樹(JTree)組件使用實例

    這篇文章主要介紹了Java Swing中的表格(JTable)和樹(JTree)組件使用實例,本文同時講解了表格和樹的基本概念、常用方法、代碼實例,需要的朋友可以參考下
    2014-10-10
  • Java實現(xiàn)動態(tài)驗證碼生成

    Java實現(xiàn)動態(tài)驗證碼生成

    這篇文章主要為大家詳細介紹了Java實現(xiàn)動態(tài)驗證碼生成,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Spring?Security密碼解析器PasswordEncoder自定義登錄邏輯

    Spring?Security密碼解析器PasswordEncoder自定義登錄邏輯

    這篇文章主要為大家介紹了Spring?Security密碼解析器PasswordEncoder自定義登錄邏輯示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 老生常談 java匿名內(nèi)部類

    老生常談 java匿名內(nèi)部類

    下面小編就為大家?guī)硪黄仙U刯ava匿名內(nèi)部類。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • Java面試必考之如何在項目中優(yōu)雅的拋出異常

    Java面試必考之如何在項目中優(yōu)雅的拋出異常

    這篇文章主要為大家詳細介紹了Java中的幾種異常關(guān)鍵字和異常類相關(guān)知識,本文比較適合剛?cè)肟覬ava的小白以及準備秋招的大佬閱讀,需要的可以收藏一下
    2023-06-06
  • 舉例解析Java的圖像緩沖技術(shù)的使用

    舉例解析Java的圖像緩沖技術(shù)的使用

    這篇文章主要介紹了Java的圖像緩沖技術(shù)的使用,使用到了Java的awt.image包,需要的朋友可以參考下
    2015-10-10
  • 淺析Bean?Searcher?與?MyBatis?Plus?區(qū)別介紹

    淺析Bean?Searcher?與?MyBatis?Plus?區(qū)別介紹

    Bean?Searcher號稱任何復雜的查詢都可以一行代碼搞定,但?Mybatis?Plus?似乎也有類似的動態(tài)查詢功能,最近火起的?Bean?Searcher?與?MyBatis?Plus?倒底有啥區(qū)別?帶著這個問題一起通過本文學習下吧
    2022-05-05
  • java讀取properties文件的方法

    java讀取properties文件的方法

    這篇文章主要介紹了java讀取properties文件的方法,實例分析了java操作properties配置文件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Java多線程中的Exchanger應用簡析

    Java多線程中的Exchanger應用簡析

    這篇文章主要介紹了Java多線程中的Exchanger應用簡析,Exchanger提供了一個同步點exchange方法,兩個線程調(diào)用exchange方法時,無論調(diào)用時間先后,兩個線程會互相等到線程到達exchange方法調(diào)用點,此時兩個線程可以交換數(shù)據(jù),將本線程產(chǎn)出數(shù)據(jù)傳遞給對方,需要的朋友可以參考下
    2023-12-12
  • Request對象如何獲取請求頭數(shù)據(jù)

    Request對象如何獲取請求頭數(shù)據(jù)

    這篇文章主要介紹了Request對象如何獲取請求頭數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論