NHMicro腳本化微服務(wù)開(kāi)源框架
MVC 框架的缺點(diǎn):
-
系統(tǒng)按照Controller、Service、Dao層次劃分,雖然在建設(shè)初期技術(shù)結(jié)構(gòu)清晰。但每個(gè)業(yè)務(wù)邏輯代碼都分散到不同代碼框,業(yè)務(wù)結(jié)構(gòu)不直觀,不利于后期業(yè)務(wù)重構(gòu)。
-
業(yè)務(wù)代碼與MVC技術(shù)棧深度耦合,某層技術(shù)框架升級(jí),導(dǎo)致整體服務(wù)不可復(fù)用。
-
由于代碼分散,支持版本化成本很高。
腳本化微服務(wù)(NHMicro開(kāi)源框架)實(shí)現(xiàn)MVC反模式
Controller 層改造
使用微服務(wù)交互接口取代Controller,或者仍使用原有Controller技術(shù)棧,但調(diào)用NHMicro微服務(wù)提供的腳本調(diào)用Util。
Service 層改造
uService層功能代碼腳本化,腳本化有利于快速調(diào)整調(diào)用流程,有利于版本化。
Dao 層改造
統(tǒng)一封裝Dao(NHMicro開(kāi)源框架已經(jīng)提供Dao封裝),基于Spring-jdbcTemplate封裝統(tǒng)一Dao。
腳本化微服務(wù)(NHMicro開(kāi)源框架)-實(shí)現(xiàn)技術(shù)棧中的虛擬機(jī)
NHMicro微服務(wù)架構(gòu)中交互層和dao層不含有業(yè)務(wù)屬性,需求變更時(shí)不需要修改微服務(wù)交互層代碼和微服務(wù)Dao層代碼。
特點(diǎn)
-
一個(gè)腳本實(shí)現(xiàn)一個(gè)業(yè)務(wù)功能,業(yè)務(wù)框架清晰。
-
腳本內(nèi)容修改后,設(shè)置新的名稱(chēng),可以和舊腳本部署在同一個(gè)系統(tǒng)中,實(shí)現(xiàn)版本化。
-
腳本可以被復(fù)制到另一個(gè)不同MVC棧的系統(tǒng)中,實(shí)現(xiàn)代碼復(fù)用。
-
NHMicro微服務(wù)架構(gòu)是Java技術(shù)棧中的虛擬機(jī),一次腳本編寫(xiě)到處復(fù)用。
項(xiàng)目
-
micro-rule-engine 項(xiàng)目為腳本化核心引擎,核心引擎基于groovy技術(shù)實(shí)現(xiàn),支持groovy腳本熱加載。服務(wù)業(yè)務(wù)邏輯均使用groovy實(shí)現(xiàn)腳本化。
-
nh-micro-db項(xiàng)目為標(biāo)準(zhǔn)化dao層,標(biāo)準(zhǔn)化dao層基于jdbctemplate封裝,同時(shí)支持MySQL和Oracle,可以在框架外單獨(dú)使用。忽略orm映射功能,內(nèi)置根據(jù)id進(jìn)行增刪改查接口,強(qiáng)化參數(shù)類(lèi)型兼容性。使開(kāi)發(fā)人員不必關(guān)系查詢條件參數(shù)或查詢結(jié)果的數(shù)據(jù)類(lèi)型。提高開(kāi)發(fā)效率。
-
nh-micro-template為nh-micro-db層工具化封裝,可以快速構(gòu)建增刪改查應(yīng)用。目前支持mysql,后續(xù)支持oracle。自動(dòng)過(guò)濾參數(shù)中有效字段。如果使用mysql5.7+版本,支持動(dòng)態(tài)字段功能。可以在insert或update時(shí)自動(dòng)創(chuàng)建不存在的字段。動(dòng)態(tài)字段功能基于mysql的json字段實(shí)現(xiàn),沒(méi)有ddl操作,不受運(yùn)維制約。封裝sql模板功能,可以實(shí)現(xiàn)mybatis相同的功能。
-
project-demo項(xiàng)目為使用nh-micro框架的完整演示,同時(shí)也是腳本微服務(wù)的默認(rèn)的開(kāi)發(fā)平臺(tái)和默認(rèn)運(yùn)行容器。
-
nh-micro框架可以與任何使用spring框架的技術(shù)棧兼容,因此project-demo項(xiàng)目并不是必須的運(yùn)行環(huán)境和開(kāi)發(fā)技術(shù)棧環(huán)境。
-
project-demo 項(xiàng)目,內(nèi)置的登錄,用戶管理,角色管理,部門(mén)管理,菜單管理,字典管理等基礎(chǔ)功能。
這些功能均使用groovy腳本實(shí)現(xiàn),可以直接使用project-demo項(xiàng)目進(jìn)行業(yè)務(wù)開(kāi)發(fā),也可以將nh-micro技術(shù)框架移植到開(kāi)發(fā)人員自有項(xiàng)目中使用,使開(kāi)發(fā)人員有更高的起點(diǎn)更關(guān)注業(yè)務(wù)實(shí)現(xiàn),而不是重復(fù)進(jìn)行基礎(chǔ)功能實(shí)現(xiàn)。后續(xù)會(huì)添加封裝好的業(yè)務(wù)功能groovy腳本,方便快速支撐業(yè)務(wù)。
project-demo 項(xiàng)目運(yùn)行界面如下
提示:建表sql在項(xiàng)目的readme中
