# 观澜 v2 后端(Java 8 + Spring Boot 2.7 + Swagger + Security/OAuth2-JWT + Nacos 可选) # # 端口口径:与现有 Python 后端**并存**(detail 18033 / Python 网关 28084 / 算法 18050 / Vue 28110 / # Java 网关 28085),本工程占 28120;迁移期两套同时跑,按冻契约逐条对拍、逐条切换。 # # ★实逮(2026-09-29):本文件只许有**一个** `guanlan:` 顶层键 —— 追加式改动曾写出两个同名键, # snakeyaml 直接 `DuplicateKeyException`,应用起不来。 server: port: 28120 spring: application: name: guanlan-backend # springfox 3 在 Spring Boot 2.6+ 需要回退到 ant 路径匹配,否则启动即报 # "Failed to start bean 'documentationPluginsBootstrapper'" mvc: pathmatch: matching-strategy: ant_path_matcher # ★实逮(2026-09-29):只要 classpath 上有 nacos-discovery,它就会在启动时连 Nacos, # 连不上直接 `NacosException: Client not connected` **把应用拖死**。单体/离线模式必须显式关掉 # —— 开关是 `spring.cloud.nacos.discovery.enabled`(我自己那个 guanlan.nacos.enabled 只管我们自己的逻辑)。 cloud: nacos: discovery: enabled: ${guanlan.nacos.enabled:false} register-enabled: false discovery: enabled: false guanlan: algorithm: base-url: http://127.0.0.1:18050 jwt: # 与网关(../backend-gateway)**同一密钥**:网关只校验,本服务签发。换密钥用环境变量 GUANLAN_JWT_SECRET secret: ${GUANLAN_JWT_SECRET:guanlan-offline-hmac-secret-change-me-0123456789abcdef} issuer: guanlan nacos: # 单体/离线模式默认关闭;要接注册中心时置 true 并给地址 enabled: false addr: 127.0.0.1:8848 logging: level: root: INFO com.guanlan: INFO # ★ P12:数据可信度 findings 读**同一份**对象库产物 objects-json: outputs/rudong/ontology/objects.json