本發(fā)明特別涉及一種基于JFinal架構(gòu)的路由管理優(yōu)化方法。
背景技術(shù):
JFinal是基于Java語言的極速web開發(fā)框架,其核心設(shè)計(jì)目標(biāo)是開發(fā)速度快,代碼量少,學(xué)習(xí)簡單快捷,功能強(qiáng)大,輕量級,易擴(kuò)展,Restful。在擁有Java語言所有的優(yōu)勢的同時(shí)擁有ruby,python等動態(tài)語言的開發(fā)效率。
JFinal項(xiàng)目開發(fā)始于2011年初,項(xiàng)目開源于2012年3月18日,采用對商業(yè)應(yīng)用友好的Apache Licence 2.0協(xié)議。開源以來深受廣大開發(fā)者歡迎,目前采用JFinal框架開發(fā)的用戶群迅速壯大,同時(shí)不乏一些已經(jīng)上線的商業(yè)化互聯(lián)網(wǎng)項(xiàng)目。JFinal在中國最大的開源社區(qū)備受矚目,自開源以來一直是熱門項(xiàng)目。JFinal將一直堅(jiān)持以下設(shè)計(jì)目標(biāo):開發(fā)迅速、代碼量少、學(xué)習(xí)簡單、功能強(qiáng)大、輕量級、易擴(kuò)展、Restful。在堅(jiān)持以上設(shè)計(jì)目標(biāo)的同時(shí),基于微內(nèi)核+全方位擴(kuò)展型架構(gòu),打造功能極度全面WEB+ORM開發(fā)框架。徹底解放開發(fā)者的生產(chǎn)力,徹底改善開發(fā)者的開發(fā)體驗(yàn),讓軟件開發(fā)成為一件輕松愉快的事情。
JFinal通過實(shí)踐逐步形成了一套極速開發(fā)方法,此法將在即將打造的JFinal極速開發(fā)社區(qū)展示出來。
JFinal采用微內(nèi)核全方位擴(kuò)展架構(gòu),全方位是指其擴(kuò)展方式在空間上的表現(xiàn)形式。JFinal由Handler、Interceptor、Controller、Render、Plugin五大部分組成。
JFinal背身的路由配置實(shí)現(xiàn)方式通過Routes里面的add方法添加路由的關(guān)系,但在開發(fā)的過程中,項(xiàng)目的一般對于路由的配置會很多,每當(dāng)實(shí)現(xiàn)一個(gè)路由Controller都必須要單獨(dú)調(diào)用Routes里面的add方法一次,不利于開發(fā)流程的管理的實(shí)現(xiàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種能夠?qū)γ恳粋€(gè)路由實(shí)行自動添加,不需要再對每一個(gè)路由Controller進(jìn)行單獨(dú)的添加,從而規(guī)范開發(fā)流程和管理的基于JFinal架構(gòu)的路由管理優(yōu)化方法。
本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:基于JFinal架構(gòu)的路由管理優(yōu)化方法,包括以下步驟:
S1、為每一個(gè)Controller接口定義一個(gè)接口注解ControllerBind,并給每一個(gè)Controller接口定義唯一的name作為路由請求的路徑;
S2、通過name獲取項(xiàng)目所有的路由,并將獲取的所有的路由放入一個(gè)集合中;
S3、將集合中的路由分別通過接口注解ControllerBind綁定model數(shù)據(jù)庫;
S4、根據(jù)getAnnotation方法返回的接口注解ConrollerBind得到viewPath()返回的String判斷是否添加路由,若String中含有Controller接口的name,則添加對應(yīng)Controller接口的接口注解ControllerBind,否則不添加。
本發(fā)明的有益效果是:本發(fā)明能夠?qū)γ恳粋€(gè)路由實(shí)行自動添加,不需要再對每一個(gè)路由Controller進(jìn)行單獨(dú)的添加,從而規(guī)范開發(fā)流程和管理。
具體實(shí)施方式
下面進(jìn)一步說明本發(fā)明的技術(shù)方案。
本發(fā)明的一種基于JFinal架構(gòu)的路由管理優(yōu)化方法,包括以下步驟:
S1、為每一個(gè)Controller接口定義一個(gè)接口注解ControllerBind,并給每一個(gè)Controller接口定義唯一的name作為路由請求的路徑;
S2、通過name獲取項(xiàng)目所有的路由,并將獲取的所有的路由放入一個(gè)集合中;
S3、將集合中的路由分別通過接口注解ControllerBind綁定model數(shù)據(jù)庫;
S4、根據(jù)getAnnotation方法返回的接口注解ConrollerBind得到viewPath()返回的String判斷是否添加路由,若String中含有Controller接口的name,則添加對應(yīng)Controller接口的接口注解ControllerBind,否則不添加。
實(shí)現(xiàn)本發(fā)明的基于JFinal架構(gòu)的路由管理優(yōu)化方法的具體程序?yàn)椋?/p>
一、AutoControllerBindPluginList類的實(shí)現(xiàn):
二、AutoControllerBindPluginList需要的一個(gè)類ClassSearcheres實(shí)現(xiàn)通過父類查找:
三、ControllerBind類的實(shí)現(xiàn):
本領(lǐng)域的普通技術(shù)人員將會意識到,這里所述的實(shí)施例是為了幫助讀者理解本發(fā)明的原理,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實(shí)施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實(shí)質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。