You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Java Managed Bean的初始化时间及与JVM启动时间差值?

获取Java Managed Bean初始化时间的方案

没有标准API可以直接获取Managed Bean的初始化时间,但可以借助容器的生命周期回调机制实现需求,同时轻松计算与JVM启动时间的差值。

Spring 框架场景

方式一:实现InitializingBean接口

import org.springframework.beans.factory.InitializingBean;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

public class MySpringBean implements InitializingBean {
    @Override
    public void afterPropertiesSet() {
        long beanInitTime = System.currentTimeMillis();
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        long jvmStartTime = runtimeMXBean.getStartTime();
        long delay = beanInitTime - jvmStartTime;
        // 可输出或存储delay值,即JVM启动到Bean初始化的耗时
    }
}

方式二:使用@PostConstruct注解

import jakarta.annotation.PostConstruct;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

public class MySpringBean {
    @PostConstruct
    public void init() {
        long beanInitTime = System.currentTimeMillis();
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        long jvmStartTime = runtimeMXBean.getStartTime();
        long delay = beanInitTime - jvmStartTime;
    }
}

Jakarta EE(原Java EE)场景

使用@PostConstruct注解监听Bean初始化:

import jakarta.annotation.PostConstruct;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

public class MyEJB {
    @PostConstruct
    public void onInit() {
        long beanInitTime = System.currentTimeMillis();
        RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
        long jvmStartTime = runtimeMXBean.getStartTime();
        long delay = beanInitTime - jvmStartTime;
    }
}

核心逻辑说明

  • 获取JVM启动时间:通过RuntimeMXBean.getStartTime()得到JVM启动时的毫秒时间戳
  • 记录Bean初始化时间:在容器触发的初始化回调方法中调用System.currentTimeMillis()
  • 计算差值:直接用Bean初始化时间戳减去JVM启动时间戳,结果就是两者的时间差(毫秒)

内容的提问来源于stack exchange,提问作者Alberto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:50:40