# 项目结构规范 ## 概述 本项目采用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目录内容相同)