Java 记录会话作用域Bean初始化时间
我的web应用程序有问题,我怀疑会话范围的bean需要很长时间才能加载Java 记录会话作用域Bean初始化时间,java,spring,session,Java,Spring,Session,我的web应用程序有问题,我怀疑会话范围的bean需要很长时间才能加载 有什么方法可以记录bean初始化所花的时间吗?您可以编写一个简单的时间记录机制,在构造函数开始时设置开始时间,在用@PostConstruct注释的方法中设置结束时间。这应该可以让您很好地了解Spring初始化bean和连接其依赖项所需的时间。一个简单的log4j配置应该可以让您了解哪些bean需要多长时间。将日志记录级别设置为调试,并使用log4j appender中的日期/时间格式打印时间。SLF4j(可以很容易地与Sp
有什么方法可以记录bean初始化所花的时间吗?您可以编写一个简单的时间记录机制,在构造函数开始时设置开始时间,在用
@PostConstruct
注释的方法中设置结束时间。这应该可以让您很好地了解Spring初始化bean和连接其依赖项所需的时间。一个简单的log4j配置应该可以让您了解哪些bean需要多长时间。将日志记录级别设置为调试,并使用log4j appender中的日期/时间格式打印时间。SLF4j(可以很容易地与Spring一起使用:我发现的原因)有一个特殊的TimeInstrument实现,用于以下目的:
也许这对某人有帮助,尽管这个问题有点老了
编辑:它的优点是:它实际上使用了nanoTime(),根据这些帖子[,]这是最精确的解决方案
(来自org.slf4j.profiler.StopWatch.start(字符串)的代码片段)
有没有办法记录bean初始化所需的时间?是的,在
@PostConstruct
方法中。但是由于我们没有任何代码要检查,我们不能说问题是在那里还是在其他地方。构造函数是在注入依赖项之前还是之后被调用的?我需要在我测量的初始化时间中包括依赖项注入时间。在依赖项注入之前调用默认构造函数
public void start(String name) {
this.name = name;
startTime = System.nanoTime();
status = TimeInstrumentStatus.STARTED;
}