← 返回文章列表

oa-backend-framework项目架构设计 - 总体架构

分类:计算机/架构/oa-backend-framework项目架构设计

总体思路上,我们要做一个相对独立的后端应用程序。

总体架构

这个应用具有独立的分层设计,主要分层如下:

  1. 业务请求入口:
    • 控制器层:接收来自Web API的业务请求。控制器类会注册到Web容器中。虽然API主要都写在我们的Spring Boot项目中,而不是写在这里(因为很麻烦),但仍然有部分涉及OA系统的API必须写在这里。
    • 流程动作层:接收来自OA系统的执行流程动作的业务请求。流程动作类会注册到OA系统中。
  2. 服务层:实现业务服务,是业务逻辑的核心。
  3. 数据库层:实现对数据库的读写,支持事务管理。

应用与OA系统运行在同一个JVM中,可以在代码层面与OA系统进行交互。

应用将实现一个开发框架,这个开发框架将做到:

  1. 本地运行,方便调试:所有与OA系统非强相关的业务代码,都支持在本地运行,可以在Web容器上运行API,可以通过JUnit运行流程动作。本地运行时,可以方便地通过IDE断点做调试。
  2. 打包部署:整个项目可以打成一个jar包,然后整体上传、部署到OA系统中,方便更新和版本控制。
  3. 良好封装:框架对与OA系统的交互做良好封装,业务代码完全透明,或只需使用封装后的简单概念和接口,无需自己处理OA系统的复杂细节。
  4. 事务控制:一个业务请求(API或流程动作)的所有代码都运行在一个数据库事务中,支持自动提交和回滚。
  5. 开发规范:制定合理的开发规范,包括包结构、实体划分、服务粒度等,使业务代码更清晰有序、更可复用、更可维护。

由于本质上仍然是嵌入到OA系统中运行,应用面临如下限制:

  1. 部署后仍然要重启OA:必须重启JVM,才能使新代码生效。
  2. 三方库有限:应用只能使用OA系统自带的三方库,且必须同版本。为了避免影响OA系统,不允许向OA系统中加入其他三方库或已有三方库的其他版本。