Skip to content
张弓 edited this page Feb 19, 2021 · 4 revisions

欢迎使用 summer 框架!

资讯管理系统(MIS)是企业、政府应用最大的软件类别。此类系统均有一些共性的功能,如帐套管理、菜单管理、权限管理等,我们没有必要每次都重头开发,重头开发既不能控制交期,也难以保障品质。

summer 旨在建立一个公共的MIS二次开发平台,可籍此快速建立类似的,并运行在云平台的大数据应用,以降低开发成本,控制交付日期。项目代码会聚各类开发人员进行不断迭代升级,已成功使用在不同的商业软件项目。

summer 采用约定大于配置的策略,严格遵守开源软件的规则,并尽力保障向后兼容,充分保护大家的开发成果与可延续性。

  • 各类资讯管理系统,如ERP、HR、SCM、CRM等,其均存在共同的特点:如用户管理、菜单管理、权限管理、参数管理等,需要进行简化开发。
  • 在企业进行深度使用时,需要进行客制化开发,即需要一套定做一套资讯管理系统,其均存在与通用资讯管理系统一样的架构。
  • 各资讯管理系统,需要分段开发,各系统之间要能进行统一的认证登录管理,并相互联接交接,使用同一套框架,才容易实现互联互通。

核心对象主要有IForm与IService,二者结合可低成本地实现微服务架构,同时保障系统功能弹性与性能弹性:

IForm,定位于页面控制器,用于接收web输入,以及输出IPage接口。其中IPage实现有:JspPage、JsonPage、RedirectPage等,可自由扩充。实际编写时,可直接继承AbstractForm后快速实现具体的页面控制器。

IService,定位于业务逻辑,用于接收web输出,以及输出IStatus与DataSet-JSON,并可透过包装类,转化为其它格式如xml的输出,此项与IForm的差别在于:IForm有提供对getRequest().getSession()的访问,可使用HttpSession。IService有提供RESTful接口,可提供第三方访问。

实际使用时,IForm会调用IService,而IService既对内提供业务服务,也对外提供业务服务。

  • BeanFactory:系统对象工厂

  • AppConfig:应用配置对象,用于配置本地配置文件名等

  • ServerConfig:服务器配置对象,在此配置mysql、memcached等

  • MyConnection:mysql数据库连接对象,由ServerConfig提供具体配置

  • IHandle: 系统环境接口

  • SessionHandle:系统环境对象

  • CustomHandle:虚拟系统环境对象,方便实现各类具体业务逻辑

  • IService: 业务逻辑接口,派生:AbstractService

  • IRestful:RESTful访问方式设置

  • AbstractService:业务逻辑对象,继承:CustomHandle,接口:IService,IRestful

db包核心对象为 DataSet,其模型参考于Delphi的TDataSet对象,以及.net中DataSet的对象, 对象继承层次为: DataSet->DataQuery

常用对象列表:

  • Record:内存数据表,近似于List<Object>
  • DataSet:内存数据表,近似于 List<Record> + Record
  • DataQuery:实体数据表,近似于 DataQuery + SqlOperator,处理table增删改查
  • Transaction:自动事务处理,可嵌套
  • BuildQuery:组合查询工具对象
  • BatchScript:批处理脚本对象,可一次性编写多条数据更新指令。