亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

手把手教你寫一個(gè)spring IOC容器的方法

瀏覽:22日期:2023-07-18 08:11:32

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

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

第0步(準(zhǔn)備工作):

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

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

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

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

第2步:搭建主體框架

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

PS:我們需要很多標(biāo)簽,如service,controller,還有autowired等

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

手把手教你寫一個(gè)spring IOC容器的方法

(2)打上標(biāo)簽

手把手教你寫一個(gè)spring IOC容器的方法

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

第5步:初始化

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

路徑:

手把手教你寫一個(gè)spring IOC容器的方法

內(nèi)容:

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

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

手把手教你寫一個(gè)spring IOC容器的方法

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

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

so,

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

太天真了?。?!

如果你按照我說的方法去運(yùn)行,恭喜你,得到的結(jié)果是not found?。。≌嬲奶魬?zhàn)才剛剛開始:

第一,標(biāo)簽類的定義,如下,特別重要的是Target

手把手教你寫一個(gè)spring IOC容器的方法

還需要補(bǔ)充一個(gè)mapping

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

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

手把手教你寫一個(gè)spring IOC容器的方法

看看結(jié)果吧。

手把手教你寫一個(gè)spring IOC容器的方法

完結(jié)撒花~~~

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

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 欧洲美女粗暴交视频 | 香蕉国产人午夜视频在线 | 一级做a爱片久久毛片 | 国产福利在线免费观看 | 国产乱人伦偷精品视频不卡 | 欧美一级做 | 午夜黄页网站在线播放 | 91亚洲视频在线观看 | 久久久久久久久女黄9999 | 亚洲美女在线视频 | 1024亚洲天堂 | 亚洲精品美女久久久久99 | 国产大片免费观看资源 | 在线观看亚洲人成网站 | 国产97公开成人免费视频 | 国产a级特黄的片子视频免费 | 美国一级做a一级爱视频 | 国产高清资源 | 成人午夜影视全部免费看 | 日韩一级片免费观看 | 免费一区在线 | 一级黄色片视频 | 黄色福利在线观看 | 久久精品这里是免费国产 | 亚洲一区二区三区久久久久 | 日韩我不卡| 国产精品亚洲精品日韩已满 | 久久er这里都是精品23 | 成年看片永远免费 | 国产区第一页 | 日本hdxxxxx护士免费的 | 99精品国产美女福到在线不卡 | 国产福利视频在线 | 色婷婷激情五月综合 | 好吊色青青青国产欧美日韩 | 日本人与黑人xxxx | 中文字幕无线码一区二区三区 | 欧洲美女a视频一级毛片 | 国产伦精品一区二区 | 国产精品久久久久久一级毛片 | 521香蕉在线观看视频 |