Files
loan-pricing/doc/2026-04-16-TongWeb自启动适配后端实施记录.md
2026-04-16 15:43:00 +08:00

158 lines
4.4 KiB
Markdown
Raw 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.
# TongWeb自启动适配后端实施记录
## 1. 本次改动概述
本次仅对后端 `ruoyi-admin` 模块进行 TongWeb 自启动适配,保持 Spring Boot `java -jar` 启动方式不变,完成了以下改造:
- 接入 TongWeb Spring Boot Starter 依赖。
- 排除默认内嵌 Tomcat 主依赖链。
-`Tongweb_license.dat` 纳入 `ruoyi-admin` 资源目录并打包进产物。
-`dev``uat``pro` 三套环境配置中增加 `server.tongweb.license.path`
- 补充 TongWeb 资源与配置的自动化测试。
## 2. 修改文件
新增文件:
- `ruoyi-admin/src/main/resources/Tongweb_license.dat`
- `ruoyi-admin/src/test/java/com/ruoyi/TongWebLicenseResourceTest.java`
- `ruoyi-admin/src/test/java/com/ruoyi/TongWebYamlConfigTest.java`
- `doc/2026-04-16-TongWeb自启动适配后端实施记录.md`
修改文件:
- `ruoyi-admin/pom.xml`
- `ruoyi-admin/src/main/resources/application-dev.yml`
- `ruoyi-admin/src/main/resources/application-uat.yml`
- `ruoyi-admin/src/main/resources/application-pro.yml`
## 3. 关键实施内容
### 3.1 依赖与打包调整
`ruoyi-admin/pom.xml` 中完成以下处理:
-`ruoyi-framework` 依赖增加 `spring-boot-starter-tomcat` 排除。
- 新增 `com.tongweb.springboot:tongweb-spring-boot-starter-2.x:7.0.E.7`
- 增加 `resources` 配置,确保 `.dat` 文件进入构建产物。
- 新增 TongWeb Maven 仓库:
- `https://mvn.elitescloud.com/nexus/repository/maven-releases/`
补充仓库的原因是:项目当前默认只使用阿里云公共仓库,无法解析 TongWeb Starter 依赖。
### 3.2 License 资源接入
`doc/Tongweb_license.dat` 复制到:
- `ruoyi-admin/src/main/resources/Tongweb_license.dat`
构建后已确认该文件进入 `ruoyi-admin.jar`
- `BOOT-INF/classes/Tongweb_license.dat`
### 3.3 多环境配置补充
在以下文件的 `server` 节点下增加:
```yml
tongweb:
license:
path: classpath:Tongweb_license.dat
```
涉及文件:
- `ruoyi-admin/src/main/resources/application-dev.yml`
- `ruoyi-admin/src/main/resources/application-uat.yml`
- `ruoyi-admin/src/main/resources/application-pro.yml`
### 3.4 自动化测试补充
新增测试:
- `TongWebLicenseResourceTest`
- 校验 `Tongweb_license.dat` 可从 classpath 读取。
- `TongWebYamlConfigTest`
- 校验 `dev``uat``pro` 三套环境都声明了 `server.tongweb.license.path`
## 4. 验证结果
### 4.1 测试验证
执行命令:
```bash
mvn -pl ruoyi-admin -am -Dtest=TongWebLicenseResourceTest -Dsurefire.failIfNoSpecifiedTests=false test
mvn -pl ruoyi-admin -am -Dtest=TongWebYamlConfigTest -Dsurefire.failIfNoSpecifiedTests=false test
```
结果:
- 两个新增测试均通过。
### 4.2 构建验证
执行命令:
```bash
mvn -pl ruoyi-admin -am package -DskipTests
```
结果:
- 构建成功。
- `ruoyi-admin.jar``ruoyi-admin.war` 均正常产出。
### 4.3 产物检查
执行命令:
```bash
jar tf ruoyi-admin/target/ruoyi-admin.jar | rg 'Tongweb_license.dat|tongweb'
```
结果:
- 确认 `Tongweb_license.dat` 已被打包到 `BOOT-INF/classes/`
- 确认 TongWeb 相关依赖已进入最终产物。
### 4.4 依赖树检查
执行命令:
```bash
mvn -pl ruoyi-admin dependency:tree '-Dincludes=com.tongweb.springboot:*,com.tongweb:*,org.apache.tomcat.embed:*'
```
结果:
- 已出现 TongWeb Starter 及其相关依赖。
- 默认 `spring-boot-starter-tomcat` 主依赖链已不在结果中。
- 依赖树中仍存在 `org.apache.tomcat.embed:tomcat-embed-el:9.0.112`,来源为 `spring-boot-starter-validation`,本次未额外清理。
### 4.5 启动验证
执行命令:
```bash
mvn -f ruoyi-admin/pom.xml spring-boot:run -Dspring-boot.run.profiles=dev
```
结果:
- 应用成功监听 `63310` 端口。
- TongWeb License SDK 日志已输出,说明 `server.tongweb.license.path` 配置生效,许可证文件已被读取。
- 启动验证完成后,已手动结束后台 Java 进程,未残留测试进程。
## 5. 风险与遗留事项
启动日志中发现当前 `Tongweb_license.dat` 本身存在以下问题:
- 许可证版本信息为 `7.0`,而当前中间件产品版本为 `7.0.E`,存在版本不匹配告警。
- 许可证有效期显示为 `2023-02-23`,已过期。
结论:
- 本次代码改造已经打通 TongWeb 接入、资源加载、配置读取和启动链路。
- 但上线前应替换为与 `TongWeb 7.0.E` 匹配且在有效期内的正式授权文件,否则运行环境存在授权风险。