0

我正在使用 Jersey 创建一个 REST 服务。一些资源(比如一些全局地图、文件)应该在第一个请求到达之前加载(因为加载这些资源需要 20 秒)。所以我创建了一些静态字段(属性)来保存这些资源,因为我相信当我启动这个 REST 服务时它们应该被初始化。

但是,我发现了一个奇怪的问题,即只有在我发送第一个请求时才会加载静态资源。所以对于第一个请求,总是需要 20 多秒才能得到响应,而后面的请求要快得多(因为已经加载了资源)。

谁能解释一下为什么 Java 在任何请求之前都不初始化这些静态字段?

4

1 回答 1

1

在 Java 中,类在第一次加载时被初始化。这是您的第一个请求导致类加载。

也许会有所帮助。

于 2012-08-27T10:39:05.823 回答