跳到主要内容

前端集成示例

基于 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.htmlSwagger 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

参考资源