如易云是什么 如易云的框架是业务系统开发和技术中间件之前的桥梁,是对业务领域深入理解后的精巧封装,可以大大提升开发效率。
全景图
我对每块,做下简单说明。
se-context,业务上下文(主要是用户信息),大家都懂的。因为集成了springsecurity,基本上是对SecurityContext的包装,通过上下文可以方便的拿到用户信息,不过这里会支持 web入口(http请求)和 远程方法调用入口(dubbo)。对于具体的业务系统,肯定上下文信息会有所扩展,例如 如易云,会增加用户所属公司,创建的应用及应用的相关信息等。
se-domain-common,模型的基础包。 主要分为域模型(BaseDomain、CreateBaseDomain)BaseDomain 只有一个id属性;CreateBaseDomain
包括创建人、创建时间、修改人、修改时间、状态(可用、不可用、逻辑删除)。持久化,主要是 条件查询,排序等。view(展示),主要是分页展示,查询部分的模型抽象;wrapper(包装),主要是移动开发中便于ios处理,返回的一切皆对象(“{}”),对基本类型,数组做了包装。
se-biz-common,是对业务逻辑层的封装。关于数据库层细节,请看:创易-数据层设计 基于这样的理论基础,我们基于此对DAO,Service(包含业务异常、分页、数据权限)层做了通用实现。
se-protocol-common,是协议的封装。这是建立在我们多年web开发、移动开发的基础上的,不可否认人和人的沟通是低效的。我们希望这种协议约定深深的植入脑子深入,成为一种标准。结合wrapper、converter、ExceptionHandler我们的返回格式将是完全统一的(不管是web系统还是移动应用),如下:
{
"rtnCode":"返回的响应码 为空,说明是正常返回",
"msg":"错误信息",
"developMsg":"错误堆栈信息",
"uri":"错误说明url",
"ts":"服务端响应时的时间",
"style":"plain/gzip/encrypt",
"bizData":"返回的业务数据"
}
se-web-common 是api层的封装,基于protocol,依赖springmvc的机制,实现。它依赖了springboot web相关的jar包。
se-admin-ser-common 是运营管理系统业务逻辑层的实现,包括模型、DAO、service。关于 admin的 模型,后面会有专门文章介绍。
se-admin-common是运营管理系统web层,主要是基于freemarker模型引擎渲染,列表/编辑页面 有赖jqgrid强大功能和很好的抽象能力。我们对其抽象做了数据库映射,保证运行期可动态变更。另外就是其他它可实现面向列的数据权限。
最后,如易云 代码生成工具 无缝集成了这套框架!