目录结构
后端工程
SOFAST框架采用模块化设计思想,将后端工程分为基础框架层(so-fast-framework)以及上游产品线层(目前仅提供Cloud产品线so-fast-pl-cloud)。
so-fast-framework
so-fast-framework是SOFAST框架的底层核心框架,提供微服务开发的基础脚手架以及依赖统一管理,其标准目录结构如下:
so-fast-framework
├── so-fast-cloud-dependencies // 统一依赖管理
│
├── so-fast-common // 共通封装(统一常数、统一异常处理、统一返回
│
├── so-fast-core // SOFAST框架核心包
│ ├── so-fast-cache-starter // 一级缓存管理
│ ├── so-fast-cloud-starter // 注册中心、配置中心客户端starter
│ ├── so-fast-ds-starter // 动态数据源starter
│ ├── so-fast-elastic-starter // ES搜索引擎starter
│ ├── so-fast-excel-starter // excel文件操作starter
│ ├── so-fast-feign-starter // RPC starter
│ ├── so-fast-kafka-starter // kafka依赖封装starter
│ ├── so-fast-lock-starter // 分布式锁封装starter
│ ├── so-fast-log-starter // 审计日志封装starter
│ ├── so-fast-mongo-starter // mongodb依赖封装starter
│ ├── so-fast-mybatis-starter // mybatis-plus封装starter
│ ├── so-fast-mybatis-tenant-starter // mybatis-plus多租户版本封装starter
│ ├── so-fast-oss-starter // oss对象存储封装starter
│ ├── so-fast-pay // 聚合支付封装starter
│ ├── so-fast-rabbitmq-starter // rabbit依赖封装starter
│ ├── so-fast-redis-starter // redis封装starter
│ ├── so-fast-redis-tenant-starter // redis多租户版本封装starter
│ ├── so-fast-rocketmq-starter // rocketmq依赖封装starter
│ ├── so-fast-seata-starter // seata依赖封装starter
│ ├── so-fast-security-starter // oauth2封装starter
│ ├── so-fast-security-tenant-starter // oauth2多租户版本封装starter
│ ├── so-fast-sentinel-gateway-starter // 网关限流封装starter
│ ├── so-fast-sentinel-starter // 微服务限流封装starter
│ ├── so-fast-swagger-starter // swagger api封装starter
│ ├── so-fast-tenant-starter // 多租户上下文封装starter
│ ├── so-fast-web-starter // 微服务web api开发starter
│ ├── so-fast-web-tenant-starter // 微服务web api多租户版本开发starter
│ ├── so-fast-websocket-starter // websocket封装starter
│ ├── so-fast-xss-starter // xss安全starter
│
├── so-fast-sdk // 平台层sdk
│ └── so-fast-log-sdk // 审计日志sdk
│
└── so-fast-utils // 工具类
├── sf-common-utils // 常用工具类(非web系)
└── sf-web-utils // web用工具类
so-fast-framework只提供基础jar包,所有依赖包均发布在maven私服上,开发使用时只需要在maven中配置私服镜像即可拉取使用。
so-fast-pl-cloud
so-fast-pl-cloud是Cloud产品线的解决方案,提供企业级微服务框架。其标准目录如下:
so-fast-pl-cloud
├── db // 数据库脚本
├── deploy // 服务一键启停脚本
├── nacos // nacos参考配置文件,可直接在nacos导入
│
├── so-fast-gateway // 网关服务
├── so-fast-pl-common // 产品级通用常数等
├── so-fast-pl-sdk // 产品级微服务sdk
│ ├── so-fast-cms-sdk // cms微服务sdk
│ ├── so-fast-system-sdk // system微服务sdk
│ ├── so-fast-uaa-sdk // uaa微服务sdk
│ └── so-fast-upms-sdk // upms微服务sdk
│
├── so-fast-platform // 产品线内置服务
│ ├── so-fast-cms // 内容管理服务
│ ├── so-fast-demo // demo示例服务
│ ├── so-fast-log // 审计日志服务
│ ├── so-fast-upms // UPMS服务
│ ├── so-fast-system // 系统设置服务
│ ├── so-fast-fs // 文件上传服务
│ └── so-fast-ws-server // websocket服务
├── so-fast-uaa // 统一认证中心
│
├── so-fast-visual // 可视化服务
│ ├── so-fast-deploy // 可视化部署(可忽略,目前使用jenkins)
│ ├── so-fast-admin // 监控中心
│ ├── so-fast-mpg // 代码生成器
│ ├── so-fast-task // 定时任务管理平台(集成xxl-job)
前端工程
前端工程采用vue-cli3.0构建,其标准目录结构如下:
sofast-web
├── babel.config.js // Babel配置文件
├── package-lock.json
├── package.json
├── postcss.config.js // PostCss配置文件
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── static // 静态文件目录
│ └── NEditor // 富文本编辑器(基于UEditor)
├── src
│ ├── App.vue
│ ├── api // 配置后端接口
│ ├── assets // 图片
│ ├── components // 共通组件目录
│ │ ├── Breadcrumb // 面包屑导航
│ │ ├── DateRange // 日期区间组件
│ │ ├── Dialog // 模态框组件
│ │ ├── DictSelect // 字典下拉选组件
│ │ ├── Editor // 富文本编辑器组件
│ │ ├── Hamburger // 展开/收缩左侧菜单按钮组件
│ │ ├── HeaderSearch // 头部菜单检索组件
│ │ ├── IconSelect // 图标选择器组件
│ │ ├── LangSelect // 语言选择组件
│ │ ├── OrganizationSelect // 组织机构级联下拉组件
│ │ ├── Pagination // 分页组件
│ │ ├── RoleSelect // 角色下拉组件
│ │ ├── SvgIcon // SVG图标
│ │ ├── Table // 表格组件
│ │ └── Upload // 上传组件
│ ├── filters // 自定义过滤器
│ ├── icons
│ │ └── svg // 存放SVG图标
│ ├── i18n // 国际化目录
│ │ └── common // 共通Label,Message配置
│ ├── layout // 全局布局
│ │ ├── components
│ │ │ ├── AppMain.vue // 中间内容区
│ │ │ ├── Navbar.vue // 头部Header
│ │ │ ├── Sidebar // 左侧菜单栏
│ │ │ ├── TagsView // 标签页
│ │ │ └── index.js
│ │ ├── index.vue
│ │ └── mixin
│ │ └── ResizeHandler.js // 响应式混入(区分desktop和mobile)
│ ├── main.js // Vue入口文件
│ ├── mixins // 自定义混入
│ ├── permission.js // 权限控制
│ ├── router // 路由
│ ├── settings.js // 启用/停用部分组件
│ ├── store // Vuex
│ ├── styles // 样式文件
│ ├── themes // 主题
│ │ └── default // 主题文件夹(默认)
│ ├── utils // 工具
│ │ ├── auth.js // token工具
│ │ ├── base64Util.js // base64加密解密
│ │ ├── get-page-title.js // 获取页面title
│ │ ├── request.js // axios实例
│ │ ├── scroll-to.js // 滚动动画
│ │ ├── treeUtils.js // 树形数据工具(Array2Tree)
│ │ └── validate.js // 校验工具
│ └── views
│ │ ├── 404.vue // 404页面
│ │ ├── contentMgt // 内容管理模块
│ │ ├── dashboard // 首页
│ │ ├── login // 登录页
│ │ ├── system // 系统管理模块
│ │ │ ├── apiMgt // API管理
│ │ │ ├── dictionaryMgt // 字典管理
│ │ │ ├── log // 日志
│ │ │ ├── menuMgt // 菜单管理
│ │ │ ├── organizationMgt // 组织机构管理
│ │ │ ├── permissionMgt // 权限管理
│ │ │ ├── roleMgt // 角色管理
│ │ │ └── userMgt // 用户管理
│ │ └── userProfile // 个人中心
└── vue.config.js // vue-cli3配置文件
└── .env.development // 开发环境变量配置
└── .env.staging // 测试环境变量配置
└── .env.production // 生产环境变量配置