databasir/docs/develop/module-and-package/index.md

68 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 后端模块概览
Databasir 基于 Gradle 进行模块管理,当前共有 5 个模块
| 模块名称 | 职责 |
|---------------| ------------------------------------------------------------ |
| api | 所有的接口和定时任务均在该模块定义 |
| common | 定义了项目通用的类,比如加解密工具、业务异常、标准 HTTP 返回类型等 |
| core | 核心业务模块,包含了所有的业务逻辑 |
| dao | 数据访问层,包含了数据库的实体、数据访问对象以及项目模型的 SQL 文件 |
| meta原plugin | jdbc 封装模块,将从 jdbc 获取的数据库元信息转换成 Databasir 的 Java 对象,文档信息的 DIFF 功能也是在该模块内实现 |
模块的依赖关系是一个简单的单向依赖
![](img/module-relation.png)
## API 模块介绍
- 代码目录
```java
api
└── src/main/java
└── com/databasir
├── api
├── advice
├── DatabasirExceptionAdvice.java /* 业务异常切面 */
└── OperationLogAspect.java /* 审计日志切面 */
├── common
└── LoginUserContext.java 用户信息工具类
├── config
├── oauth2
├── DatabasirOAuth2Authentication.java /* oauth2 登录信息实体 */
├── DatabasirOauth2LoginFilter.java /* oauth2 登录过滤器 */
└── OAuth2AuthenticationSuccessHandler.java /* oauth2 登录成功回调类 */
├── security
├── DatabasirAuthenticationEntryPoint.java /* 授权失败回调类 */
├── DatabasirAuthenticationFailureHandler.java /* 登录失败回调类 */
├── DatabasirAuthenticationSuccessHandler.java /* 登录成功回调类 */
├── DatabasirJwtTokenFilter.java /* jwt token 校验过滤器 */
├── DatabasirUserDetails.java /* 已登录用户实体信息 */
└── DatabasirUserDetailService.java /* 加载 DatabasirUserDetails 的 service */
├── SecurityConfig.java /* spring security 配置类 */
└── WebConfig.java /* web 配置类 */
├── validator
└── XXXXXValidator.java /* 业务规则前置校验器 */
├── XXXXXController.java /* 业务 HTTP 接口 */
└── Routes.java /* 业务 HTTP 接口路径常量 */
└── job
├── ProjectDocumentAutoSyncJob.java /* 文档自动同步任务 */
└── ProjectDocumentAutoSyncTriggerJob.java /* 文档自动同步任务启用任务 */
```
- 配置目录
```java
api
└── src/main/resources
├── static /* 静态资源目录 */
├── application.properties /* 生产环境配置文件 */
└── application-local.properties /* 本地开发配置文件 */
```