# ProjectAll **Repository Path**: liubiaowebcode/ProjectAll ## Basic Information - **Project Name**: ProjectAll - **Description**: 刘彪的Java框架和各种代码集合 2691973894@qq.com - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2019-12-12 - **Last Updated**: 2026-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Project-All > 各种项目中收集到的 Java、Scala 代码、框架、Shell、流水线、K8S、Qt 等杂七杂八的解决方案集大成者。 > 用不到的、想不到的,这里可能都有。 一个基于 **Spring Boot 2.2.2** 的 Java 技术演示/工具箱项目,把工作中遇到的各种框架、组件、工具类、设计模式沉淀在这里,方便随时查阅和复用。 --- ## 技术栈 | 分类 | 技术 | | --- | --- | | 基础框架 | Spring Boot 2.2.2、Spring MVC、Spring AOP、Spring Data JPA | | 工作流 | Activiti 7(含完整审批流程接口、流程图生成) | | 定时任务 | Quartz(数据库持久化 + XML 配置 cron) | | 缓存 | Redis(FastJson 序列化 + RedisUtil 工具类) | | 消息队列 | RabbitMQ(Topic 交换机、TTL 死信队列、手动 ACK、确认/回退回调) | | 数据库 | MySQL、Oracle(多数据源 + JPA)、MyBatis / MyBatis-Plus(批量插入性能测试) | | NoSQL | MongoDB | | 规则引擎 | Drools 7 + KIE Server(Workbench + kie-server) | | WebService | Apache CXF(JAX-WS / JAX-RS) | | WebSocket | Spring WebSocket(STOMP + SockJS)、Netty-SocketIO(聊天/广播) | | 报表/文档 | POI、poi-tl(Word 模板)、myexcel、jasperreports、flying-saucer-pdf(HTML 转 PDF)、PDFBox | | 监控 | OSHI(CPU/内存/JVM/磁盘实时监控) | | 安全/加密 | Spring Security、kaptcha 验证码、RSA、SM3/SM4、BouncyCastle | | 其他 | hutool、guava、fastjson/gson、jsoup、xstream、zxing 二维码、beetl、aviator 表达式引擎 | --- ## 功能模块 ### 工作流(Activiti 7) - 流程部署、查询、删除(按 ID/名称/Key) - 发起审批(支持租户隔离 + 业务主键防重复发起) - 组任务 / 候选任务的查询、拾取、交接、归还 - 审批(通过 / 驳回)及审批状态判断 - 审批历史查询(含流程变量) - 流程图生成(SVG、Base64)、审批进度追踪 - `src/main/resources/bpmn/` 下 72+ 个 BPMN 流程文件(含网关、边界事件、多实例、泳道等案例) ### 定时任务(Quartz) - 数据库持久化任务,XML 动态配置 cron 表达式 - Job / Trigger / Scheduler 三大监听器 - 动态添加、修改、删除任务 ### 消息队列(RabbitMQ) - Topic 交换机 + 路由绑定 - 消息确认(Confirm)与未投递回退(Return)回调 - TTL 延迟/死信队列,手动 ACK + 重试 ### WebSocket - Spring WebSocket + STOMP:广播订阅 `/topic`、SockJS 端点 `/notification` - Netty-SocketIO:单聊、群聊、广播,端口 8889 ### 服务器监控(OSHI) - `GET /server` 返回 CPU、内存、JVM、磁盘实时指标 - 前端页面 `static/server.html` ### WebService(CXF) - JAX-WS 发布 `/soap/user?wsdl` - 客户端调用示例 ### 报表/文档 - Excel:POI、myexcel、hutool-excel 导入导出 - Word:poi-tl 模板渲染 - PDF:Beetl 模板 + flying-saucer / PDFBox,HTML 转 PDF 并转图片 ### 设计模式(GoF 23 种) - 创建型:单例(5 种写法)、工厂(简单/方法/抽象)、原型、建造者 - 结构型:适配器、桥接、组合、装饰、外观、享元、代理 - 行为型:模板方法、命令、访问者、迭代器、观察者、中介者、备忘录、解释器、状态、策略、责任链 ### 工具类库 - 树结构工具(TreeUtil)、时间工具(DateDiffUtil、xk-time) - XML 解析(xstream、jaxb、dom4j)、HTML 解析(jsoup) - 加密(SM3/SM4、RSA)、二维码(zxing/hutool) - 文件、JSON 排序、IP、服务器信息等 --- ## 项目结构 ``` src/main/java/app ├── Run.java # 启动类(端口 8888,context-path /demo) ├── controller # 控制器(工作流、测试、服务器监控、数据交换、SocketIO) ├── config # 各类配置(数据源、redis、rabbitmq、quartz、drools、activiti...) ├── service # 业务服务(activiti 封装、cctd 数据交换) ├── designPatterns # GoF 23 种设计模式示例 ├── utils # 工具类 ├── webservice # CXF WebService 服务与客户端 ├── mapper / jpapojo / jpadao # MyBatis / MyBatis-Plus / JPA ├── quartz # Quartz 任务 ├── handler / listener / init # 事件监听、SocketIO 初始化 └── common / model / payload # 公共类、实体、请求/响应体 src/main/resources ├── application-dev.yml # 开发环境配置 ├── application-docker.yml # Docker 环境配置 ├── bpmn/ # Activiti 流程文件 ├── rules/ # Drools 规则文件 ├── pdf模板/ poiTemplate/ # PDF、Word、Excel 模板 ├── sql/ # 数据库脚本(含 activiti6/7 建表脚本) ├── static/ # 前端页面(SocketIO、服务器监控) └── templates/ # Thymeleaf 模板 docker-compose/ # 开发环境一键部署(MySQL、MongoDB、Redis、RabbitMQ、KIE...) postman/ # Postman 接口集合 开发文档汇总/ # 海量开发文档(Docker/K8S/Linux/Java/前端/脚本...) ``` --- ## 快速开始 ### 环境要求 - JDK 8 - Maven 3.x - MySQL 8(库名 `PROJECTALL`,需先导入 `src/main/resources/sql/project.sql`) - Redis、RabbitMQ、MongoDB(可选,按需使用) ### 方式一:docker-compose 一键起中间件 ```bash cd docker-compose docker-compose up -d # 会启动 MySQL、MongoDB、RTMP、Drools Workbench(8068)、KIE Server(8180)、Redis、RabbitMQ(15672) ``` ### 方式二:本地直接运行 ```bash mvn clean package -Pdev # 编译打包(dev 为默认环境) mvn spring-boot:run -Pdev # 或运行 jar nohup java -jar -Dspring.profiles.active=dev target/*.jar & ``` 访问: - 应用:`http://localhost:8888/demo/` - 服务器监控页:`http://localhost:8888/demo/server.html` - SocketIO 聊天页:`http://localhost:8888/demo/` - Druid 监控:`http://localhost:8888/demo/druid/` > 注意:`application-dev.yml` 中的 IP、数据库、Redis 等连接信息需按实际环境修改。 ### 常用测试接口 | 接口 | 说明 | | --- | --- | | `/demo/testRedis` | 测试 Redis 存取 | | `/demo/testRabbitMq` | 测试 RabbitMQ 消息发送 | | `/demo/testJpaSave` / `/demo/testJpaSaveAll` | 测试 JPA 保存/批量保存 | | `/demo/saveDataFormMysqlToOracle` | MySQL 数据拷贝到 Oracle | | `/demo/mybatisBenchSave` | MyBatis 批量插入 10 万条 | | `/demo/tree` | 树结构查询 | | `/demo/server` | 服务器实时监控数据 | | `/demo/workflow/*` | 工作流全套接口(见 postman) | --- ## 打包 / 部署 ### Docker ```bash docker build -f Dockerfile -t app-all . ``` 镜像内部运行端口 8888 / 8889,镜像时区已设置为 Asia/Shanghai。 ### Jenkins 流水线 `Jenkinsfile` 提供完整的 CI/CD:检出 → Maven 编译 → 构建镜像 → 推送阿里云镜像仓库 → 清理本地镜像。 ### 环境 Profile - `dev`:开发环境(默认) - `docker`:Docker 环境 ```bash mvn clean package -Pdev mvn clean package -Pdocker ``` --- ## 文档位置 - 开发文档:`开发文档汇总/`(Docker、K8S、Linux、Java、前端、Shell、数据库、设计模式等 90+ 类目) - Postman 接口:`postman/` - 数据库脚本:`src/main/resources/sql/`、`docker-compose/init/` --- ## 仓库地址 | 仓库 | 地址 | | --- | --- | | 主仓库(双备份) | https://gitee.com/liubiaowebcode/project-all.git | | 主仓库(双备份) | https://github.com/LB519911/project-all.git | | 组件库 | https://gitee.com/liubiaowebcode/LiuBiaoJavaComponent.git | --- ## 规划 - [ ] shiro + redis + jwt 权限前后端 - [ ] security + redis + jwt 前后端 - [ ] 各种 MQ - [ ] 工作流前后端 - [ ] 支付前后端 - [ ] OSS 前后端 - [ ] 单点登录前后端 - [ ] 结合 Scala - [ ] C++、GO、Rust、操作系统、Docker 等更多解决方案 --- ## 注意事项 - **Windows(非 UNIX 系统)**:部分文件名过长,需以管理员身份执行 `git config --system core.longpaths true` - 项目内包含个人测试数据与连接信息,请勿在生产环境直接使用。 - 本项目以学习、演示、沉淀经验为目的,部分代码为演示/测试用途。 ## License [Apache License 2.0](LICENSE)