?????? 如易云是什么 如易云的框架是業(yè)務系統(tǒng)開發(fā)和技術中間件之前的橋梁宁舰,是對業(yè)務領域深入理解后的精巧封裝,可以大大提升開發(fā)效率蓖议。
我對每塊虏杰,做下簡單說明。
??????? se-context勒虾,業(yè)務上下文(主要是用戶信息)纺阔,大家都懂的。因為集成了springsecurity修然,基本上是對SecurityContext的包裝笛钝,通過上下文可以方便的拿到用戶信息,不過這里會支持 web入口(http請求)和 遠程方法調(diào)用入口(dubbo)愕宋。對于具體的業(yè)務系統(tǒng)玻靡,肯定上下文信息會有所擴展,例如 如易云中贝,會增加用戶所屬公司囤捻,創(chuàng)建的應用及應用的相關信息等。
? ? ? ? se-domain-common雄妥,模型的基礎包最蕾。 主要分為域模型(BaseDomain、CreateBaseDomain)BaseDomain 只有一個id屬性老厌;CreateBaseDomain
包括創(chuàng)建人瘟则、創(chuàng)建時間、修改人枝秤、修改時間醋拧、狀態(tài)(可用、不可用、邏輯刪除)丹壕。持久化庆械,主要是 條件查詢,排序等菌赖。view(展示)缭乘,主要是分頁展示,查詢部分的模型抽象琉用;wrapper(包裝)堕绩,主要是移動開發(fā)中便于ios處理,返回的一切皆對象(“{}”)邑时,對基本類型奴紧,數(shù)組做了包裝。
? ? ? ? se-biz-common晶丘,是對業(yè)務邏輯層的封裝黍氮。關于數(shù)據(jù)庫層細節(jié),請看:創(chuàng)易-數(shù)據(jù)層設計 基于這樣的理論基礎浅浮,我們基于此對DAO沫浆,Service(包含業(yè)務異常、分頁脑题、數(shù)據(jù)權限)層做了通用實現(xiàn)件缸。
???????? se-protocol-common,是協(xié)議的封裝。這是建立在我們多年web開發(fā)叔遂、移動開發(fā)的基礎上的他炊,不可否認人和人的溝通是低效的。我們希望這種協(xié)議約定深深的植入腦子深入已艰,成為一種標準痊末。結合wrapper、converter哩掺、ExceptionHandler我們的返回格式將是完全統(tǒng)一的(不管是web系統(tǒng)還是移動應用)凿叠,如下:
{
"rtnCode":"返回的響應碼 為空,說明是正常返回",
"msg":"錯誤信息",
"developMsg":"錯誤堆棧信息",
"uri":"錯誤說明url",
"ts":"服務端響應時的時間",
"style":"plain/gzip/encrypt",
"bizData":"返回的業(yè)務數(shù)據(jù)"
}
???????? se-web-common 是api層的封裝嚼吞,基于protocol盒件,依賴springmvc的機制,實現(xiàn)舱禽。它依賴了springboot web相關的jar包炒刁。
????????? se-admin-ser-common 是運營管理系統(tǒng)業(yè)務邏輯層的實現(xiàn),包括模型誊稚、DAO翔始、service罗心。關于 admin的 模型,后面會有專門文章介紹城瞎。
? ? ? ? ? se-admin-common是運營管理系統(tǒng)web層渤闷,主要是基于freemarker模型引擎渲染,列表/編輯頁面 有賴jqgrid強大功能和很好的抽象能力脖镀。我們對其抽象做了數(shù)據(jù)庫映射飒箭,保證運行期可動態(tài)變更。另外就是其他它可實現(xiàn)面向列的數(shù)據(jù)權限蜒灰。
最后补憾,如易云 代碼生成工具 無縫集成了這套框架!