NHMicro開源框架介紹
傳統MVC框架中,系統按照Controller、Service、Dao層次劃分,雖然在建設初期技術結構清晰。但每個業務邏輯代碼都分散到不同代碼框,業務結構不直觀,不利於後期業務重構。 業務代碼與MVC技術棧深度耦合,某層技術框架升級,導致整體服務不可複用。 由於代碼分散,支持版本化成本很高。
藉助腳本化微服務(NHMicro開源框架)實現MVC優化
Controller層優化
使用微服務交互接口取代Controller,或者仍使用原有Controller技術棧,但調用NHMicro微服務提供的腳本調用Util。
Service層優化
Service層功能代碼腳本化,腳本化有利於快速調整調用流程,有利於版本化。
Dao層優化
統一封裝Dao(NHMicro開源框架已經提供Dao封裝),基於Spring-jdbcTemplate封裝統一Dao。
腳本化微服務(NHMicro開源框架)-實現技術棧中的虛擬機
NHMicro微服務架構中交互層和dao層不含有業務屬性,需求變更時不需要修改微服務交互層代碼和微服務Dao層代碼。
一個腳本實現一個業務功能,業務框架清晰。
腳本內容修改後,設置新的名稱,可以和舊腳本部署在同一個系統中,實現版本化。
腳本可以被複制到另一個不同MVC棧的系統中,實現代碼複用。
NHMicro微服務架構是Java技術棧中的虛擬機,一次腳本編寫到處複用。
nh-micro框架開源代碼和demo已經開源地址爲
https://github.com/jeffreyning/nh-micro
micro-rule-engine項目爲腳本化核心引擎
核心引擎基於groovy技術實現,支持groovy腳本熱加載。
服務業務邏輯均使用groovy實現腳本化。
nh-micro-db項目爲標準化dao層
標準化dao層基於jdbctemplate封裝,同時支持MySQL和Oracle,可以在框架外單獨使用。
可選的orm映射功能,內置根據id進行增刪改查接口,強化參數類型兼容性。
使開發人員不必關係查詢條件參數或查詢結果的數據類型。提高開發效率。
nh-micro-template爲nh-micro-db層工具化封裝
可以快速構建增刪改查應用。目前支持mysql和oracle。
自動過濾參數中有效字段。如果使用mysql5.7+版本,支持動態字段功能。
可以在insert或update時自動創建不存在的字段。
動態字段功能基於mysql的json字段實現,沒有ddl操作,不受運維制約。
封裝sql模板功能,可以實現mybatis相同的功能。
project-demo項目爲使用nh-micro框架的完整演示
同時也是腳本微服務的默認的開發平臺和默認運行容器。
nh-micro框架可以與任何使用spring框架的技術棧兼容,
因此project-demo項目並不是必須的運行環境和開發技術棧環境。
project-demo項目,內置的登錄,用戶管理,角色管理,部門管理,菜單管理,字典管理等基礎功能。
這些功能均使用groovy腳本實現,可以直接使用project-demo項目進行業務開發,也可以將nh-micro技術框架移植到開發人員自有項目中使用,使開發人員有更高的起點更關注業務實現,而不是重複進行基礎功能實現。
後續會添加封裝好的業務功能groovy腳本,方便快速支撐業務。