02-项目结构规范.md 7.7 KB

项目结构规范

概述

本项目采用Maven作为构建工具,遵循标准的Maven目录结构。项目基于Spring Boot框架开发,使用Java 17作为开发语言。项目包名为work.baiyun.chronicdiseaseapp

根目录结构

ChronicDiseaseApp/
├── pom.xml                          # Maven项目配置文件
├── src/                             # 源代码目录
│   ├── main/                        # 主源代码
│   │   ├── java/                    # Java源代码
│   │   │   └── work/baiyun/chronicdiseaseapp/  # 主包
│   │   │       ├── SpringAPP.java   # Spring Boot主启动类
│   │   │       ├── common/          # 通用类
│   │   │       │   ├── Page.java    # 分页类
│   │   │       │   └── R.java       # 统一响应类
│   │   │       ├── config/          # 配置类
│   │   │       │   ├── AuthInterceptor.java      # 认证拦截器
│   │   │       │   ├── CorsConfig.java           # CORS配置
│   │   │       │   ├── Knife4jConfig.java        # Knife4j配置
│   │   │       │   ├── MybatisPlusConfig.java    # MyBatis-Plus配置
│   │   │       │   ├── RestTemplateConfig.java   # RestTemplate配置
│   │   │       │   ├── WebMvcConfig.java         # Web MVC配置
│   │   │       │   └── WeChatProperties.java     # 微信配置属性
│   │   │       ├── controller/     # 控制器层
│   │   │       │   ├── GeoController.java        # 地理位置控制器
│   │   │       │   └── WeChatController.java     # 微信控制器
│   │   │       ├── enums/          # 枚举类
│   │   │       │   ├── ExceptionResultCode.java  # 异常结果码枚举
│   │   │       │   ├── FailResultCode.java       # 失败结果码枚举
│   │   │       │   ├── Gender.java               # 性别枚举
│   │   │       │   ├── PermissionGroup.java      # 权限组枚举
│   │   │       │   └── SuccessResultCode.java    # 成功结果码枚举
│   │   │       ├── exception/     # 异常处理
│   │   │       │   ├── CustomException.java      # 自定义异常
│   │   │       │   └── CustomExceptionHandler.java # 异常处理器
│   │   │       ├── handler/       # 处理器
│   │   │       │   ├── CustomMetaObjectHandler.java  # MyBatis元对象处理器
│   │   │       │   ├── GenderTypeHandler.java        # 性别类型处理器
│   │   │       │   └── PermissionGroupTypeHandler.java # 权限组类型处理器
│   │   │       ├── mapper/        # 数据访问层
│   │   │       │   ├── SysUserMapper.java       # 系统用户Mapper
│   │   │       │   ├── UserInfoMapper.java      # 用户信息Mapper
│   │   │       │   └── UserTokenMapper.java     # 用户令牌Mapper
│   │   │       ├── model/        # 数据模型
│   │   │       │   ├── bo/       # 业务对象
│   │   │       │   ├── po/       # 持久化对象
│   │   │       │   │   ├── BaseEntity.java      # 基础实体
│   │   │       │   │   ├── UserInfo.java        # 用户信息实体
│   │   │       │   │   └── UserToken.java       # 用户令牌实体
│   │   │       │   └── vo/       # 视图对象
│   │   │       │       ├── GetOpenidRequest.java     # 获取OpenID请求
│   │   │       │       ├── QueryUserRequest.java     # 查询用户请求
│   │   │       │       ├── QueryUserResponse.java    # 查询用户响应
│   │   │       │       └── UpdateUserInfoRequest.java # 更新用户信息请求
│   │   │       ├── service/      # 服务层
│   │   │       │   ├── TokenService.java       # 令牌服务接口
│   │   │       │   ├── UserService.java        # 用户服务接口
│   │   │       │   ├── WeChatService.java      # 微信服务接口
│   │   │       │   └── impl/     # 服务实现
│   │   │       │       ├── TokenServiceImpl.java   # 令牌服务实现
│   │   │       │       ├── UserServiceImpl.java    # 用户服务实现
│   │   │       │       └── ...                     # 其他服务实现
│   │   │       └── util/         # 工具类
│   │   │           └── TokenUtil.java           # 令牌工具类
│   │   └── resources/            # 资源文件
│   │       ├── application.yml   # 应用配置文件
│   │       ├── logback-spring.xml # 日志配置文件
│   │       └── cert/             # 证书文件
│   │           ├── fullchain.pem  # 证书链
│   │           └── privkey.pem    # 私钥
│   └── test/                     # 测试代码
│       └── java/                 # 测试Java代码(目前为空)
├── target/                        # 编译输出目录
│   ├── classes/                   # 编译后的类文件
│   ├── generated-sources/         # 生成的源代码
│   ├── generated-test-sources/    # 生成的测试源代码
│   └── test-classes/              # 编译后的测试类文件
├── docs/                          # 文档目录
│   ├── ReadME.md                  # 项目说明文档
│   └── DevRule/                   # 开发规范目录
├── logs/                          # 日志目录
└── cert/                          # 证书目录(根目录副本)

包结构说明

主包 (work.baiyun.chronicdiseaseapp)

  • SpringAPP.java: Spring Boot应用程序的主启动类,包含@EnableKnife4j注解启用Knife4j接口文档。

common包

存放通用工具类和基础类,如统一响应对象R、分页对象Page等。

config包

存放Spring配置类,包括拦截器、CORS、MyBatis-Plus、Web MVC等配置。

controller包

存放Spring MVC控制器类,处理HTTP请求和响应。

enums包

存放枚举类,如结果码枚举、性别枚举、权限组枚举等。

exception包

存放自定义异常类和全局异常处理器。

handler包

存放MyBatis处理器,如元对象处理器、类型处理器等。

mapper包

存放MyBatis Mapper接口,用于数据访问。

model包

  • bo: 业务对象包(目前为空)
  • po: 持久化对象包,存放数据库实体类
  • vo: 视图对象包,存放请求和响应对象

service包

  • service: 服务接口包
  • service.impl: 服务实现包

util包

存放工具类,如令牌生成工具等。

资源文件结构

src/main/resources

  • application.yml: Spring Boot应用配置文件,包含服务器、数据库、MyBatis-Plus等配置
  • logback-spring.xml: 日志配置文件
  • cert/: 证书文件目录,存放SSL证书相关文件

测试结构

src/test/java

存放单元测试和集成测试代码。目前项目中该目录为空。

编译输出结构

target

Maven编译后的输出目录,包含编译后的类文件、生成的源代码等。生产环境部署时通常不需要包含此目录。

文档结构

docs

  • ReadME.md: 项目说明文档
  • DevRule/: 开发规范目录,包含各项开发规范文档

日志和证书目录

  • logs/: 运行时日志文件存放目录
  • cert/: 证书文件存放目录(根目录副本,与resources下的cert目录内容相同)