亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

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

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

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

spring框架的基礎(chǔ)核心和起點(diǎn)毫無(wú)疑問(wèn)就是IOC,IOC作為spring容器提供的核心技術(shù),成功完成了依賴(lài)的反轉(zhuǎn):從主類(lèi)的對(duì)依賴(lài)的主動(dòng)管理反轉(zhuǎn)為了spring容器對(duì)依賴(lài)的全局控制。今天就帶大家手寫(xiě)一個(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)目?jī)?nèi)容如下圖:

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

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

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

第2步:搭建主體框架

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第5步:初始化

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

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

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

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

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

路徑:

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

內(nèi)容:

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

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

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

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

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

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

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

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

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

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

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

手把手教你寫(xiě)一個(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)容是對(duì)的嘛?(2)你以為你能得到想要的結(jié)果嗎?

太天真了!!!

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

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

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

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

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

第二,TestController類(lèi)中,RequestParam少了value屬性,如果沒(méi)有,則無(wú)法傳值。

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

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

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

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

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

看看結(jié)果吧。

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

完結(jié)撒花~~~

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

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 欧美级毛片 | 黄色毛片国产 | 久久99国产亚洲精品 | 小屁孩cao大人免费网站 | 国产国语一级毛片全部 | 亚洲天堂视频在线观看免费 | 国产欧美日韩视频在线观看 | 波多野结衣一级片 | 在线观看一区二区三区四区 | 日韩欧美不卡在线 | 久久黄色精品视频 | 国产精品美女一区二区 | 一级做a爰全过程免费视频毛片 | 在线观看亚洲精品专区 | 日本伊人精品一区二区三区 | 台湾三级毛片 | 欧美成人视 | 三级网址在线 | 男女性关系视频免费观看软件 | 夜间福利在线观看 | 三级全黄的视频 | 中文字幕亚洲一区二区va在线 | 欧美xxx高清| 日韩免费a级在线观看 | 久久久网站 | 91精品一区二区三区在线播放 | 午夜三级理论在线观看视频 | 成人欧美一区二区三区在线 | 亚洲精品在线免费 | 黄色三级免费网站 | 在线观看一级毛片 | 国产免费午夜a无码v视频 | 一级做a爱过程免费观看 | 免费特黄一级欧美大片在线看 | 手机免费黄色网址 | 久久在线免费观看 | 日本一区二区三区不卡视频中文字幕 | 国产精品路边足疗店按摩 | 欧美透逼视频 | 成人做爰毛片免费视频 | 国产碰碰|