package jnpf.audit.sdk; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; /** * SDK 装配自检探针。存在两重价值: * 1) 它本身就是「宿主必须用 ObjectProvider 注入」的示范——audit.enabled=false 时 * AuditSdkAutoConfiguration 整套 Bean 缺席(不是 no-op),普通 @Autowired 会让宿主起不来; * 2) 给出可断言的启动产物(tasks/audit-m2-startup-check.sh 双态断言此行)。 * * 用 warn 级:平台 logger.yaml 强制 root:ERROR,业务服务内 info 埋点会被压制。 */ public class AuditSdkProbe implements ApplicationRunner { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(AuditSdkProbe.class); private final ObjectProvider auditClient; private final String appName; public AuditSdkProbe(ObjectProvider auditClient, String appName) { this.auditClient = auditClient; this.appName = appName; } @Override public void run(ApplicationArguments args) { log.warn("[AUDIT-SDK] app={} present={}", appName, auditClient.getIfAvailable() != null); } }