Appearance
ADR-0002: 保护模块(hiapi-core-public)不放 JPA 实体/仓库
- 日期:2025(补记) 状态:✅ 生效
背景
hiapi-core-public 是加密分发的受保护模块,经 C++ JNI 加载器在 Spring 上下文 refresh 之后载入。曾把 JPA 实体/Repository 放进去导致启动崩溃。
决策
保护模块内只放 @Service / @Component / @RestController 等可后注册的 Bean;JPA @Entity 与 Repository 一律放 boot 期依赖模块(参照 upload 模块的模式)。
理由
JPA 的实体扫描与 Repository 代理在启动早期完成,后加载的类无法注册,报 No qualifying bean / Not a managed type。
影响
- 给保护模块新增功能时,先把实体/仓库落到普通模块,业务逻辑再进保护模块
- 违反此约束的代码在客户环境直接起不来,属于最高优先级打回项