前端集成示例
基于 Spring Boot 的文档管理集成示例项目,演示如何与文档中台进行集成。
集成方案详细介绍
如果您需要查看完整的 API 文档,请访问 Docs API 手册。
如何获取示例代码
github 仓库 前端集成在 params-in-url-solution/java/filez-demo 目录
重要提示
本项目仅用于测试和演示目的。请勿在生产服务器上直接使用,必须进行适当的代码修改和安全加固!
技术栈
- 框架: Spring Boot 2.5.4
- 数据库: SQLite (内嵌数据库,无需额外安装)
- ORM: MyBatis Plus 3.4.3.4
- 模板引擎: FreeMarker
- API文档: Knife4j (Swagger)
- JSON处理: Fastjson 1.2.83
- JWT: JJWT 0.9.1
- HTTP客户端: Apache HttpClient 4.5.13
前置要求
- Java: JDK 8 或更高版本
- Maven: 3.6 或更高版本
项目结构
filez-demo/
├── src/main/java/com/filez/demo/
│ ├── controller/ # 控制器层
│ │ ├── LoginController.java # 登录控制器
│ │ ├── HomeController.java # 主页控制器
│ │ ├── FileController.java # 文件操作控制器
│ │ └── ZOfficeController.java # ZOffice集成控制器 ⭐
│ ├── service/ # 业务逻辑层
│ ├── config/ # 配置类
│ │ └── ZOfficeConfig.java # ZOffice配置 ⭐
│ └── common/ # 公共组件
├── src/main/resources/
│ ├── application.yml # 主配置文件
│ └── zoffice.yml # ZOffice集成配置 ⭐
├── target/ # 编译输出目录
└── logs/ # 日志文件
快速开始
1. 编译项目
# 克隆代码
git clone <repository-url>
cd filez-demo
# 编译打包
mvn clean package -DskipTests
编译成功后,在 target/ 目录下生成 filez-demo-1.0.0.RELEASE.jar 文件。
2. 配置应用
编辑 src/main/resources/application.yml:
server:
port: 8000
demo:
host: 172.16.34.165 # 当前应用服务器地址
context: /v2/context
编辑 src/main/resources/zoffice.yml:
zoffice:
service:
host: 172.16.34.165 # ZOffice 服务器地址
port: 8001 # ZOffice 服务器端口
secret: secret # JWT 密钥
3. 启动应用
前台启动(开发环境)
java -jar target/filez-demo-1.0.0.RELEASE.jar
后台启动(生产环境)
Linux/macOS:
nohup java -jar target/filez-demo-1.0.0.RELEASE.jar > logs/app.log 2>&1 &
Windows PowerShell:
Start-Process java -ArgumentList "-jar","target/filez-demo-1.0.0.RELEASE.jar" -WindowStyle Hidden
4. 访问应用
| 服务 | 地址 | 说明 |
|---|---|---|
| 主页 | http://localhost:8000 | 应用主入口 |
| API 文档 | http://localhost:8000/doc.html | Swagger API 文档 |
| 文件管理 | http://localhost:8000/home/local | 文档管理界面 |
默认账号: 用户名 admin, 密码 zOffice
ZOffice 集成关键代码
1. ZOfficeController.java
核心控制器,处理 ZOffice 集成的所有接口:
@RestController
@RequestMapping("/v2/context")
public class ZOfficeController {
// 获取编辑器 URL
@GetMapping("/driver-cb")
public Result getEditorUrl(@RequestParam String docId,
@RequestParam String mode) {
// 返回编辑器访问地址
}
// 下载文档内容
@GetMapping("/{docId}/content")
public void downloadContent(@PathVariable String docId,
HttpServletResponse response) {
// 返回文档二进制流
}
// 上传文档内容
@PostMapping("/{docId}/content")
public Result uploadContent(@PathVariable String docId,
HttpServletRequest request) {
// 保存编辑后的文档
}
// 获取文档元数据
@GetMapping("/{docId}/meta")
public Result getDocMeta(@PathVariable String docId) {
// 返回文档信息
}
// 文档状态通知回调
@PostMapping("/{docId}/notify")
public Result notify(@PathVariable String docId,
@RequestBody NotifyRequest request) {
// 处理文档状态变更通知
}
}
2. ZOfficeConfig.java
ZOffice 服务配置:
@Component
@ConfigurationProperties(prefix = "zoffice")
public class ZOfficeConfig {
private Service service;
private String secret; // JWT 密钥
public static class Service {
private String host; // ZOffice 服务器地址
private Integer port; // ZOffice 服务器端口
}
}
3. zoffice.yml
ZOffice 配置文件:
zoffice:
service:
host: 172.16.34.165
port: 8001
secret: secret
停止服务
# Linux/macOS - 查找进程
ps aux | grep filez-demo
# 停止进程
kill <PID>
# Windows - 查找进程
tasklist | findstr java
# 停止进程
taskkill /PID <PID> /F
查看日志
# Linux/macOS
tail -f logs/filezDemo.log
# Windows
Get-Content logs/filezDemo.log -Wait -Tail 50
参考资源
- API 文档 - 启动应用后访问
- Spring Boot 文档