刘光辉
15 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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> auditClient;
    private final String appName;
 
    public AuditSdkProbe(ObjectProvider<AuditClient> 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);
    }
}