MVC 框架的缺点:
系统按照Controller、Service、Dao层次划分,虽然在建设初期技术结构清晰。但每个业务逻辑代码都分散到不同代码框,业务结构不直观,不利于后期业务重构。
业务代码与MVC技术栈深度耦合,某层技术框架升级,导致整体服务不可复用。
由于代码分散,支持版本化成本很高。
Controller 层改造
使用微服务交互接口取代Controller,或者仍使用原有Controller技术栈,但调用NHMicro微服务提供的脚本调用Util。
Service 层改造
uService层功能代码脚本化,脚本化有利于快速调整调用流程,有利于版本化。
Dao 层改造
统一封装Dao(NHMicro开源框架已经提供Dao封装),基于Spring-jdbcTemplate封装统一Dao。
NHMicro微服务架构中交互层和dao层不含有业务属性,需求变更时不需要修改微服务交互层代码和微服务Dao层代码。
特点
一个脚本实现一个业务功能,业务框架清晰。
脚本内容修改后,设置新的名称,可以和旧脚本部署在同一个系统中,实现版本化。
脚本可以被复制到另一个不同MVC栈的系统中,实现代码复用。
NHMicro微服务架构是Java技术栈中的虚拟机,一次脚本编写到处复用。
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脚本,方便快速支撑业务。
提示:建表sql在项目的readme中
nhmicro的dao层工具类MicroServiceTemplateSupport技术说明 概述 MicroServiceTemplate负责与数据库交互是Dao层的轻量化封装,可同时支持mysql和oracle,特别是针对mysql特性进行优化封装,如分页查询性能优化、动态字段等等。 主要特点是: 1, 简化了orm映射过程 不再需要定义实体类与数据库映射。而使用map作为输入和输出对象。 输
事务控制 通过@Transactional注解控制事务 在groovy方法上加上@Transactional注解,则通过GroovyExecUtil.execGroovyRetObj调用触发此方法时,方法内的逻辑处理即可加入事务控制。 注:使用此事务控制方法,需要将com.nh.micro.template.GroovyTMAopImpl配置到aop责任链中。 通过execGroovyRetO
框架描述 封装统一的dao层(micro-db),业务逻辑在groovy中实现。 groovy脚本放置在groovy路径下,启动时自动加载。修改时自动热部署提高调试效率。 通过复用MicroMvcTemplate和MicroServiceTemplate,降低代码量提高开发效率。 采用NhEsbServiceServlet作为controller的,调用MicroMvcTemplate子类groo
nhmicro框架中dao层操作为了保证灵活性和可扩展性,输入输出均为map,但开发人员比较熟悉使用bean作为dao层输入输出。使用micro-orm.jar中的MicroBeanMapUtil和MicroMappingAnno实现map与bean相互映射。维持灵活性的同时,也向开发人员编程习惯靠拢,并间接实现了编译时字段约束和检查。 Bean中使用@MicroMappingAnno说明ma
NHMicro开源框架介绍 传统MVC框架中,系统按照Controller、Service、Dao层次划分,虽然在建设初期技术结构清晰。但每个业务逻辑代码都分散到不同代码框,业务结构不直观,不利于后期业务重构。 业务代码与MVC技术栈深度耦合,某层技术框架升级,导致整体服务不可复用。 由于代码分散,支持版本化成本很高。 借助脚本化微服务(NHMicro开源框架)实现MVC优化 Controller
Mooa 是一个为 Angular 服务的微前端框架,它是一个基于 single-spa,针对 IE 10 及 IFRAME 优化的微前端解决方案。 Mooa 概念 Mooa 框架与 Single-SPA 不一样的是,Mooa 采用的是 Master-Slave 架构,即主-从式设计。 对于 Web 页面来说,它可以同时存在两个到多个的 Angular 应用:其中的一个 Angular 应用作为主
SRS不支持服务器端脚本,所谓服务器端脚本,指的是服务器可以加载外部脚本文件,解释并执行。 支持服务器脚本的服务器有FMS,语言是actionscript1.0;nginx支持的是lua。 SRS不支持服务器脚本的原因有: 不Simple:违反了SRS(Simple RTMP Server)的第一个S,支持扩展脚本,出错的几率也扩展了。 实际用处很小:我在国内知名的CDN公司工作时,所在部门就是用
本文向大家介绍微服务哪些框架相关面试题,主要包含被问及微服务哪些框架时的应答技巧和注意事项,需要的朋友参考一下 Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。阿里巴巴近几年对开源社区的贡献不论在国内还是国外都是引人注目的,比如:JStorm 捐赠给 Apache 并加入 Apache 基金会等,为中国互联网人争足了面子,使得阿里巴巴在国人眼里已经从电商升级为一
ketchup 是一个基于 dotnet core 的微服务框架。网关:兼容 kong,rpc:grpc支持远程调用。
Adnc 是一个轻量级的 .Net Core 微服务开发框架,同时也适用于单体架构系统的开发。支持经典三层与DDD架构开发模式、集成了一系列主流稳定的微服务配套技术栈。
Seata 的事务上下文由 RootContext 来管理。 应用开启一个全局事务后,RootContext 会自动绑定该事务的 XID,事务结束(提交或回滚完成),RootContext 会自动解绑 XID。 // 绑定 XID RootContext.bind(xid); // 解绑 XID String xid = RootContext.unbind(); 应用可以通过 RootCon