基于存储过程的mvc框架
2年前 参与的一个项目,我至今记忆犹新,当初为了适应客户不断 更新增长的业务需求,开发一套二次开发平台给客户。客户在这个平台基础上,只要动态的增加些配置,然后创建一个存储过程处理业务逻辑 ,不需要重启服务器,一个新的功能点就诞生啦。 因为客户的信息部门人员对数据库是熟悉的,因此创建一个存储过程是很简单的事情。
基于这样的思想,这样的一个平台,其实是一种框架, 是扩展性很强的。 这个框架把很多模块包裹起来, 配置文件也是存储在数据库里的。 这样的好处是 只需要很少修改,增加一些配置在数据库里,然后 就直接实现业务逻辑就可以啦(在存储过程中,遵循一定的规范),对于一般的业务需求,基本上只需 半个人天就可以完成开发测试,部署也非常的容易,更重要的不需要重启服务器,部署是热部署的。 然后让我们回想一webwork, struts, spring, 这些增加新功能,增加一些配置,页面,类, 是一定要重启服务器,而且的工作量很大。从某种程度上来说 扩展的代价是很高的。当然,我的这个所谓框架,没有以上三种功能这么强大, 这三种框架 主要是 对于 通用java应用本身的抽象, 而我的框架是对于通用业务本身的抽象。我的框架可以独立使用,也可以 配置在 以上三种框架上使用。
MVC的实现如下图:
我的框架基于这个基础,把 配置挪到数据库,增加configurationManager,model弱化,把业务逻辑挪到数据库存储过程,或者配置的简答sql里,实现 modelManager来管理所有的model. View层也进行改装,创建viewManager来管理所有的view,提供一套tag/js 控件来展现, 其中提供查询列表控件,实现基本功能。 第一个版本的 框架将推出 基本功能实现。在接下来的几个月时间里,我将陆续 推出博客文章,介绍进程。