Files
java/Project/assetmanager/docs/directory-structure.md
2026-05-26 20:47:59 +08:00

149 lines
9.9 KiB
Markdown
Raw Permalink 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.
# 资产管理系统 — 项目文件目录结构
```
assetmanager/
├── pom.xml # Maven项目配置文件管理依赖mysql-connector、jfreechart等
├── docs/ # 项目文档目录
│ ├── architecture-design.md # 软件架构设计文档
│ ├── directory-structure.md # 本文件:目录结构说明
│ └── sql/ # SQL脚本目录
│ └── init.sql # 数据库初始化脚本(建库、建表、初始数据)
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── asset/
│ │ │ │
│ │ │ ├── App.java # 应用程序入口类含main方法启动登录界面
│ │ │ │
│ │ │ ├── entity/ # 实体层与数据库表对应的JavaBean
│ │ │ │ ├── User.java # 用户实体对应t_user表
│ │ │ │ ├── Asset.java # 资产实体对应t_asset表
│ │ │ │ ├── Category.java # 分类实体对应t_category表
│ │ │ │ ├── Borrow.java # 借用实体对应t_borrow表
│ │ │ │ └── Disposal.java # 报废实体对应t_disposal表
│ │ │ │
│ │ │ ├── dao/ # 数据访问层:直接操作数据库
│ │ │ │ ├── BaseDAO.java # DAO基类封装通用CRUD操作增删改查模板
│ │ │ │ ├── UserDAO.java # 用户数据访问,登录验证、注册、查询
│ │ │ │ ├── AssetDAO.java # 资产数据访问资产CRUD、多条件查询
│ │ │ │ ├── CategoryDAO.java # 分类数据访问分类CRUD、引用检查
│ │ │ │ ├── BorrowDAO.java # 借用数据访问借用CRUD、状态更新
│ │ │ │ └── DisposalDAO.java # 报废数据访问报废CRUD、状态更新
│ │ │ │
│ │ │ ├── service/ # 业务逻辑层:封装业务规则与校验
│ │ │ │ ├── UserService.java # 用户业务逻辑,登录、注册、权限校验
│ │ │ │ ├── AssetService.java # 资产业务逻辑资产CRUD、状态流转
│ │ │ │ ├── CategoryService.java # 分类业务逻辑分类CRUD、删除引用检查
│ │ │ │ ├── BorrowService.java # 借用业务逻辑,借用/归还/审批流程
│ │ │ │ ├── DisposalService.java # 报废业务逻辑,报废申请/审批流程
│ │ │ │ └── StatService.java # 统计业务逻辑,各维度数据聚合查询
│ │ │ │
│ │ │ ├── util/ # 工具类目录
│ │ │ │ ├── DBUtil.java # 数据库工具类,连接获取/释放、资源关闭
│ │ │ │ ├── MD5Util.java # MD5加密工具密码加密
│ │ │ │ ├── ValidatorUtil.java # 表单校验工具,通用校验方法集合
│ │ │ │ └── DateUtil.java # 日期工具类,日期格式转换
│ │ │ │
│ │ │ ├── exception/ # 自定义异常目录
│ │ │ │ ├── BusinessException.java # 业务异常,封装业务逻辑错误信息
│ │ │ │ └── DBException.java # 数据库异常,封装数据库操作错误信息
│ │ │ │
│ │ │ └── view/ # 表示层Swing界面
│ │ │ ├── LoginFrame.java # 登录窗口,用户名/密码输入与验证
│ │ │ ├── RegisterDialog.java # 注册对话框,新用户注册表单
│ │ │ ├── MainFrame.java # 主窗口,菜单导航+功能面板容器
│ │ │ ├── panel/ # 功能面板目录
│ │ │ │ ├── AssetPanel.java # 资产管理面板,资产列表+增删改查操作
│ │ │ │ ├── CategoryPanel.java # 分类管理面板,分类列表+增删改操作
│ │ │ │ ├── BorrowPanel.java # 借用管理面板,借用申请/审批/归还
│ │ │ │ ├── DisposalPanel.java # 报废管理面板,报废申请/审批
│ │ │ │ ├── StatPanel.java # 统计面板,图表展示各类统计数据
│ │ │ │ └── UserPanel.java # 用户管理面板,用户列表+角色管理(管理员)
│ │ │ ├── dialog/ # 弹窗对话框目录
│ │ │ │ ├── AssetDialog.java # 资产新增/编辑对话框,含表单校验
│ │ │ │ ├── CategoryDialog.java # 分类新增/编辑对话框
│ │ │ │ ├── BorrowDialog.java # 借用申请对话框,选择资产+填写原因
│ │ │ │ ├── DisposalDialog.java # 报废申请对话框,选择资产+填写原因
│ │ │ │ ├── ApproveDialog.java # 审批对话框,同意/拒绝+备注
│ │ │ │ └── ChangePasswordDialog.java # 修改密码对话框
│ │ │ └── model/ # 表格数据模型目录
│ │ │ ├── AssetTableModel.java # 资产表格模型JTable数据适配
│ │ │ ├── BorrowTableModel.java # 借用表格模型
│ │ │ ├── DisposalTableModel.java # 报废表格模型
│ │ │ └── UserTableModel.java # 用户表格模型
│ │ │
│ │ └── resources/
│ │ ├── db.properties # 数据库连接配置URL/用户名/密码)
│ │ └── log.properties # 日志配置文件
│ │
│ └── test/
│ └── java/
│ └── com/
│ └── asset/
│ ├── dao/ # DAO层单元测试
│ │ └── UserDAOTest.java
│ ├── service/ # Service层单元测试
│ │ └── UserServiceTest.java
│ └── util/ # 工具类单元测试
│ └── ValidatorUtilTest.java
└── lib/ # 第三方JAR包目录Maven未管理时备用
└── (mysql-connector-java-x.x.x.jar)
```
---
## 目录功能注释汇总
| 目录/文件 | 层次 | 职责说明 |
|-----------|------|---------|
| `pom.xml` | 构建 | Maven项目对象模型声明依赖mysql-connector、jfreechart、编译配置 |
| `docs/` | 文档 | 存放项目文档含架构设计、目录说明、SQL脚本 |
| `docs/sql/init.sql` | 数据库 | MySQL初始化脚本建库建表、外键约束、初始管理员数据 |
| `App.java` | 入口 | 程序main方法入口初始化Look&Feel启动LoginFrame |
| `entity/` | 实体层 | 与数据库表一一对应的JavaBean含属性+getter/setter |
| `dao/` | 数据访问层 | 封装JDBC操作BaseDAO提供通用CRUD模板子类实现特定查询 |
| `dao/BaseDAO.java` | 数据访问层 | 通用CRUD模板方法减少子类重复代码 |
| `service/` | 业务逻辑层 | 封装业务规则、数据校验、事务控制调用DAO完成数据操作 |
| `util/` | 工具层 | 通用工具类DBUtil管理连接、MD5Util加密、ValidatorUtil校验、DateUtil日期转换 |
| `exception/` | 异常层 | 自定义异常类BusinessException处理业务错误DBException处理数据库错误 |
| `view/` | 表示层 | Swing界面类LoginFrame/MainFrame为顶层窗口 |
| `view/panel/` | 表示层 | 功能面板嵌入MainFrame的内容区域各模块独立面板 |
| `view/dialog/` | 表示层 | 弹窗对话框,用于新增/编辑/审批等操作,含表单校验逻辑 |
| `view/model/` | 表示层 | JTable表格模型继承AbstractTableModel适配数据到表格显示 |
| `resources/` | 配置 | 数据库连接配置、日志配置等properties文件 |
| `test/` | 测试 | 单元测试目录结构镜像main/java |
---
## 分层调用关系
```
App.java (启动)
view/ (LoginFrame → MainFrame → panel/dialog)
│ 用户操作触发事件
service/ (业务校验 + 业务逻辑)
│ 调用DAO操作数据
dao/ (JDBC → MySQL)
│ 获取连接
util/DBUtil (连接管理)
MySQL (asset_db)
```
**关键调用规则:**
- view → service → dao**严禁跨层调用**view不可直接调dao
- entity被所有层共享仅作为数据载体
- util被service/dao/view按需调用
- exception由service/dao抛出view层捕获展示