文档章节

使用脚本化微服务框架解决MVC框架的缺点

杰睿宁
 杰睿宁
发布于 2017/06/23 13:52
字数 957
阅读 22
收藏 0

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技术栈中的虚拟机,一次脚本编写到处复用。

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脚本,方便快速支撑业务。

project-demo项目运行界面如下

© 著作权归作者所有

杰睿宁

杰睿宁

粉丝 9
博文 21
码字总数 15442
作品 10
东城
私信 提问
脚本化微服务开源框架 - NHMicro

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

杰睿宁
2017/06/23
3K
5
图解微服务架构演进

原文出处: 泥瓦匠BYSocket 前言 来自dubbo的用户手册中的一句话: 常规的垂直应用架构就相当于传统的那种,现阶段传统垂直架构改造的核心就是对应用做服务化改造,服务话改造使用的核心技术...

刘星石
2016/03/09
50
0
华为内部如何实施微服务架构?基本就靠这5大原则

随着业务的发展,代码量的膨胀和团队成员的增加,传统单体式架构的弊端越来越凸显,严重制约了业务的快速创新和敏捷交付。为了解决传统单体架构面临的挑战,先后演进出了SOA服务化架构、RPC...

yard521
2016/09/19
0
0
应用服务架构演变史&&SOA架构&&Dubbox分布式服务架构原理与部署

SOA架构 SOA是Service-Oriented Architecture 是一种面向服务的分布式架构的治理系统确保架构有条不絮的演进. 1.应用服务架构的演变史 ORM单一应用架构:最开始数据量很小,系统中的所用的模块...

优云
2018/11/26
0
0
NHMicro —— 脚本化微服务开源框架

脚本化微服务 (NHMicro 开源框架) 实现 MVC 反模式,实现技术栈中的虚拟机...

达尔文
2017/06/25
35
0

没有更多内容

加载失败,请刷新页面

加载更多

好程序员大数据教程Scala系列之样例类_Option_偏函数

  好程序员大数据教程Scala系列之样例类_Option_偏函数,在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值。 ...

好程序员官网
9分钟前
1
0
zk中ServerCnxnFactory连接管理工厂

作为ServerCnxn的工厂抽象类 属性 ZOOKEEPER_SERVER_CNXN_FACTORY zookeeper.serverCnxnFactory secure 在ServerCnxnFactory中SSL是否启用 sessionMap session管理配置中信息(sessionId,Ser......

writeademo
11分钟前
1
0
【代码审计01】几种常见的漏洞种类以及代码审计工具

前言 代码审计是在经过黑盒测试完毕,也就是检查应用的基本功能是否符合产品业务需求下进行的。需要有一定的编码基础以及对漏洞形成原理的基本认知,通过工具或者经验检测中代码中可能出现的...

北桥苏
12分钟前
2
0
重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

作者: OAM 项目负责人 导读:2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Open A...

阿里巴巴云原生
13分钟前
1
0
【进阶之定义函数】一个查询树结构数据的集合

1、基本定义 delimiter 自定义符号  -- 如果函数体只有一条语句, begin和end可以省略, 同时delimiter也可以省略create function 函数名(形参列表) returns 返回类型  -- 注意是retru...

卯金刀GG
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部