Skip to content

工程结构说明

李昌文 edited this page Nov 11, 2018 · 6 revisions

工程结构说明

设计目的

每一个业务不太相关的功能都拆分成了子工程:

  • 减少耦合度 拆分开放到不同模块能减少代码上的耦合度,每个模块有什么依赖都可以在pom中看到

  • 可以打包在一起运行 可以在one-main中引入其他业务模块的代码,打包为一个Spring Boot应用单独运行

  • 可以单独运行:

    1. 开发的时候one-main工程由于打包了所有代码,每次改动代码热更新要的时间稍长。
    2. 新开发的业务工程单独作为一个Spring Boot工程启动,这样热更新很快。开发完毕再将新的业务工程引入到one-main工程中打包一起运行。
    3. 也可以在各个业务工程中添加Spring Boot Main Class,每个业务工程单独作为Spring Boot应用运行。
  • Redis管理Session: 目前是用Redis来管理Session,每个工程单独运行也能获取当前登录用户的信息

工程结构

项目文件夹结构如下:

├─one-main
├─one-entity
├─one-db-init
├─one-login
    ├─one-login-common
    ├─one-login-web
    ├─one-login-weixin
├─one-file-server
├─one-notify
├─one-sys
├─one-ui
├─one-user
├─one-util
├─one-workflow
├─one-weixin
└─one-code-gen
  • one-main 整个系统的入口工程,其他模块都打包到one-main里面运行,包含:Spring Boot启动类、整个系统的Configuration、全局异常处理等

  • one-util 一些公共的方法以及公共的类

  • one-entity 数据库实体类、实体类对应的枚举

  • one-db-init 数据初始化工程,用于首次运行的时候初始化数据

  • one-user 用户相关工程

  • one-sys 系统管理工程

  • one-notify 通知类工程(邮件、短信、微信、系统消息等)

  • one-login 登录工程,拆分成以下三个工程:

    • one-login-common:登录公共工程
    • one-login-web:PC端登录工程
    • one-login-weixin:微信端登录工程
  • one-code-gen 代码生成,目前代码生成可以由实体类生成后端代码和部分前端代码。

    • 后端:Bean、Dao、Service、RestController
    • 前端:api、列表页面(vue)、详情页面(vue)、路由
  • one-workflow 工作流相关封装:

    • 可以记录以及查看审核日志
    • 可以指定每个节点的审核人(根据机构、角色、用户、代码自定义等方式)
    • 可以查看审核流程图
  • one-file-server 文件存储服务,用于文件上传以及文件下载的处理。目前提供了以下几种方式:

    • 本地存储(local):将文件存储在本地硬盘上
    • 阿里云存储(oss):将文件直接存储在阿里云OSS上
    • 本地临时存储+阿里云永久存储(local-oss):先将文件存储在本地硬盘上,在服务器空闲的时候将数据迁移到到阿里云OSS服务器上。
  • one-weixin(暂未公布) 处理微信端相关代码的工程,是微信端登录的主入口,类似于one-main(PC端主入口)

  • one-ui WebUI工程,放置WEB前端代码的工程

  • one-ui-wx(暂未公布) 微信UI工程,放置微信前端代码的工程