Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 记录会话作用域Bean初始化时间_Java_Spring_Session - Fatal编程技术网

Java 记录会话作用域Bean初始化时间

Java 记录会话作用域Bean初始化时间,java,spring,session,Java,Spring,Session,我的web应用程序有问题,我怀疑会话范围的bean需要很长时间才能加载 有什么方法可以记录bean初始化所花的时间吗?您可以编写一个简单的时间记录机制,在构造函数开始时设置开始时间,在用@PostConstruct注释的方法中设置结束时间。这应该可以让您很好地了解Spring初始化bean和连接其依赖项所需的时间。一个简单的log4j配置应该可以让您了解哪些bean需要多长时间。将日志记录级别设置为调试,并使用log4j appender中的日期/时间格式打印时间。SLF4j(可以很容易地与Sp

我的web应用程序有问题,我怀疑会话范围的bean需要很长时间才能加载


有什么方法可以记录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;
}