W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
前面我們簡(jiǎn)單介紹了一下 Hasor 模塊化,并同時(shí)展現(xiàn)了一個(gè)簡(jiǎn)單的例子。接下來在本小節(jié)我們展示一下在同一個(gè)項(xiàng)目中進(jìn)行模塊化的實(shí)踐。
現(xiàn)在假定我們?cè)陂_發(fā)一個(gè)用戶管理系統(tǒng),系統(tǒng)根據(jù)功能大致分為:用戶模塊、權(quán)限模塊、分類打標(biāo)、登錄認(rèn)證。
上述模塊劃分是業(yè)務(wù)緯度,在實(shí)際開發(fā)中我們真正落實(shí)寫代碼時(shí)往往會(huì)有一個(gè)技術(shù)緯度的功能分類。例如上述的業(yè)務(wù)模塊可能最終的技術(shù)模塊會(huì)這樣分:數(shù)據(jù)庫讀寫、OAuth、SSO、Domain、User、Auth。它們分別對(duì)應(yīng)的是:
接著使用 Hasor 的 Module 可以定義每一個(gè)模塊,這里很簡(jiǎn)單無外乎就是定義了 幾個(gè)類。例如:
public class MyBatisModule implements Module { ... }
public class OAuthModule implements Module { ... }
public class SSOModule implements Module { ... }
...
現(xiàn)在我們已經(jīng)可以用不同的模塊類將不同的部分隔離開,接下來我們需要一個(gè)地方將它們整體配置到一起,并指定它們的順序。
第一個(gè)方式,就是我們前面幾次經(jīng)??吹降姆绞?,通過 xml 配置這些 Module。當(dāng)然在這里您也可沿用這種方式。
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor.modules>
<module>net.myproject.db.MyBatisModule</module>
<module>net.myproject.auth.OAuthModule</module>
...
</hasor.modules>
</config>
第二種方式,就是我們現(xiàn)在要介紹的一種全新的形式來組合您的模塊。這種方式比起xml 配置來說簡(jiǎn)單的很多,使用也很方便。首先找到我們項(xiàng)目的入口 Module,我們假定這個(gè) Module 名字叫做 RootModule。那么接下來我們只要在 RootModule 中想下面這樣把這幾個(gè) Module 安裝進(jìn)去就可以了。
public class RootModule implements Module {
public void loadModule(ApiBinder apiBinder) throws Throwable {
apiBinder.installModule(new MyBatisModule());
apiBinder.installModule(new OAuthModule());
...
}
}
在第二種方式中我們看到一個(gè) Module 可以被另外一個(gè) Module 所安裝。這就是 Hasor Module 提供的全新的一種方式來處理模塊的依賴配置,這種方式會(huì)大大降低我們對(duì)配置文件的依賴程度,并且有助于模塊配置的搞內(nèi)聚。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: