脚本化微服务开源框架 NHMicro

Apache
Java Groovy
跨平台
2017-06-23
杰睿宁

MVC 框架的缺点:

  • 系统按照Controller、Service、Dao层次划分,虽然在建设初期技术结构清晰。但每个业务逻辑代码都分散到不同代码框,业务结构不直观,不利于后期业务重构。

  • 业务代码与MVC技术栈深度耦合,某层技术框架升级,导致整体服务不可复用。

  • 由于代码分散,支持版本化成本很高。

              

脚本化微服务(NHMicro开源框架)实现MVC反模式

Controller 层改造

使用微服务交互接口取代Controller,或者仍使用原有Controller技术栈,但调用NHMicro微服务提供的脚本调用Util。

Service 层改造

uService层功能代码脚本化,脚本化有利于快速调整调用流程,有利于版本化。

Dao 层改造

统一封装Dao(NHMicro开源框架已经提供Dao封装),基于Spring-jdbcTemplate封装统一Dao。

脚本化微服务(NHMicro开源框架)-实现技术栈中的虚拟机

NHMicro微服务架构中交互层和dao层不含有业务属性,需求变更时不需要修改微服务交互层代码和微服务Dao层代码。

特点

  • 一个脚本实现一个业务功能,业务框架清晰。

  • 脚本内容修改后,设置新的名称,可以和旧脚本部署在同一个系统中,实现版本化。

  • 脚本可以被复制到另一个不同MVC栈的系统中,实现代码复用。

  • NHMicro微服务架构是Java技术栈中的虚拟机,一次脚本编写到处复用。

项目

  • micro-rule-engine 项目为脚本化核心引擎,核心引擎基于groovy技术实现,支持groovy脚本热加载。服务业务逻辑均使用groovy实现脚本化。

  • nh-micro-db项目为标准化dao层,标准化dao层基于jdbctemplate封装,同时支持MySQLOracle,可以在框架外单独使用。忽略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脚本,方便快速支撑业务。

project-demo 项目运行界面如下

提示:建表sql在项目的readme中

加载中

评论(5)

杰睿宁
杰睿宁 软件作者
nhmicro是后台服务架构和开发平台。不是页面开发框架。 传统的mvc需要开发许多无用的代码,比如各种数据模型bean,servicebean已经被弱化成dao的接口代理,因此使用nhmicro可以不开发各种bean代码量至少减少一半。开发周期是减少的。mvc中所谓复用往往只是在技术层面对各种bean的复用,很难对业务逻辑复用。 php在开发效率方面确实比java高,但没有java生态完善。所以nhmicro是在取长补短,即具有脚本化的高效,又与java兼容可以享受java生态环境的支持。
orpherus
orpherus
usercontroller userservice userdao可以放同一个package,不同版本的版本号可以加在package上,通过接口隔离,可以方便的在多个版本中切换。
不友好协议一边去
不友好协议一边去
看了半天没看懂,框架到底是个什么? 现在都是 MS+UI 了,没有MVC了,一看到MVC 我就犯晕
张寒枫
张寒枫
加大了业务耦合度,降低了复用性,拉长了开发周期
格力高
格力高
取消service,取消dao,直接在“微服务交互接口”(替代Controller?)中,使用脚本直接调用jdbc。这么做真有优势?最早最原生的无框架的php不是早就这么做的?

NHMicro 1.1.10 发布,支持 springcloud 热部署

NHMicro 1.1.10 发布,支持 springcloud 热部署。 springcloud按照可运行jar包部署时,通过micro-git-sync模块启动时和运行时自动同步远程git仓库中脚本,实现脚本热部署。 使用micro-git-s...

2018/01/19 17:40

NHMicro 1.1.9 发布,支持与 springcloud 整合

NHMicro 1.1.9 发布,支持与 springcloud 整合 整合后 SpringCloud 的 controller 只需编写接口,在接口中配置 SpringCloud相关注解,业务实现在 groovy中编写,支持热部署。 SpringCloud整合...

2018/01/18 10:51

NHMicro 1.1.8 已发布,该版本支持与 springmvc 整合

NHMicro 1.1.8 已发布,该版本支持与 springmvc 整合。 整合后 Springmvc 的 controller 只需编写接口,在接口中配置 springmvc 相关注解,业务实现在 groovy中编写,支持热部署。 springmv...

2018/01/16 13:39

NHMicro 1.1.7 发布,支持 MVC 各层代码热部署

NHMicro 1.1.7 已发布,该版本添加了 micro-mvc 模块。 micro-mvc框架,借助 nhmicro 框架和 groovy 技术使所有的 controller、servicebean、dao 和 sql 脚本都支持动态热部署和调试。 详见:...

2018/01/12 09:45

NHMicro 添加互金产品与账户功能模板

NHMicro 新版发布,更新内容如下: NHMicro 添加 p2p 互联网金融理财功能模板,包括理财产品查询、账户管理等相关后台和页面。 添加面向互联网用户的定期理财产品列表页面和后台管理功能 点击...

2017/07/26 15:41

脚本化微服务开源框架 NHMicro 添加信审功能

nhmicro添加信审功能 营业部进件质检通过后,会推送到信审表中,并启动信审审批流程。 在信审列表页面中,显示审核中和审核结束的进件记录。 点击查看,可显示进件详情,对已经结束的审批可点...

2017/07/20 15:37

NHMicro 添加贷款进件管理与合同模板管理功能

nhmicro添加进件管理功能 提交贷款进件、查看修改进件信息、上传附件、提交审批。 进件列表中点击添加,打开贷款进件申请录入页面 进件列表页面中可查看已录入进件记录 点击启动审批,提交至...

2017/07/19 16:48

nhmicro 版本更新,添加产品中心功能

基于nhmicro框架封装了产品中心功能:包括产品信息增删改查、阶梯利率设置、本金利息服务费算法实现、还款计划试算。 相关脚本已经上传github https://github.com/jeffreyning/nh-micro 相关...

2017/07/17 17:35

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

micro-mvc技术说明

micro-mvc框架,借助nhmicro框架和groovy技术使所有的controller、servicebean、dao和sql脚本都支持动态热部署和调试。 **Controller层** Controller层groovy中使用注解MicroUrlMapping设置u...

2018/01/12 09:42
218
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部