后端服务启动
后端服务启动
后端启动模块为 blade-service/blade-api,入口类为 org.springblade.Application。以下为当前版本的新装流程,适用于空白 MySQL 数据库。
1. 初始化数据库
初始化顺序
初始化脚本面向空白数据库。系统表、AI 业务表和扩展菜单依次导入;使用已运行的环境时,核对现有表和菜单即可。
创建字符集为 utf8mb4 的数据库 bladex_aigc,按顺序执行:
doc/sql/01-bladex.mysql.sys.create.sql
doc/sql/02-bladex.mysql.ai.create.sql
doc/sql/03-bladex.mysql.ai.ext.create.sql01 创建系统表与初始身份;02 创建 AI 业务表;03 写入 AI 菜单、按钮、管理员授权与客户端。Docker 初始化文件已按相同顺序合并,采用容器首次初始化时无需再执行这三份脚本。
2. 配置基础服务
在启动模块的目标环境配置中设置数据库与 Redis 连接。文件存储通过平台的对象存储能力配置;知识检索另需配置向量库与向量模型。
前后端配置
公钥与前端配置保持一致,私钥由后端持有。令牌签名与 SM2 密钥通过目标部署环境注入。
| 配置 | 用途 |
|---|---|
BLADE_TOKEN_SIGN_KEY | 平台令牌签名 |
BLADE_OAUTH2_PUBLIC_KEY | SM2 公钥;与前端 VITE_APP_PUBLIC_KEY 对应 |
BLADE_OAUTH2_PRIVATE_KEY | 后端 SM2 私钥 |
以下为本地开发的最小连接配置,保存到启动模块的 application-local.yml。数据库名与初始化目标一致;凭证从环境变量读取。
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/bladex_aigc?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: ${AI_DB_USER}
password: ${AI_DB_PASSWORD}
data:
redis:
host: 127.0.0.1
port: 6379
database: 0
password: ${AI_REDIS_PASSWORD:}启动进程还需注入 AI_DB_USER、AI_DB_PASSWORD 和上表三项密钥;Redis 有密码时同时注入 AI_REDIS_PASSWORD。前端代理指向 http://localhost:8080。文件存储、向量库及模型连接通过对应管理页配置,基础服务启动不需要在此写入供应商密钥。
产品配置位于业务模块的 resources/blade-module/blade-ai-business/。其中 override.yml 开启凭证接口需要的报文加密,具体优先级见 配置加载与环境管理。
3. 构建与启动
在后端根目录执行:
mvn clean package -DskipTests随后运行启动模块产物,环境名按实际配置选择:
java --add-opens java.base/java.lang=ALL-UNNAMED \
--add-opens java.base/java.lang.reflect=ALL-UNNAMED \
-jar blade-service/blade-api/target/blade-api.jar \
--spring.profiles.active=local也可在 IDE 中运行 org.springblade.Application,使用相同的环境配置与 JVM 参数。
4. 核对启动结果
应用完成启动、数据库和 Redis 连接可用后,通过 Saber 登录,进入“智能应用 → 编排台”,确认 AI 菜单、应用列表与应用详情正常返回。启动异常按下表定位。
| 现象 | 检查位置 |
|---|---|
| 私有依赖无法下载 | Maven settings、授权仓库与凭证有效期 |
| 应用启动后数据库报错 | 当前 profile、连接地址、初始化脚本和实际表结构 |
| 登录或加密接口失败 | 前后端 SM2 公钥是否对应、私钥与报文加密是否生效 |
| 登录后没有 AI 菜单 | 03 脚本执行结果、角色菜单与当前顶部菜单 |
下一步:前端宿主集成。
