我正在使用 Jersey 创建一个 REST 服务。一些资源(比如一些全局地图、文件)应该在第一个请求到达之前加载(因为加载这些资源需要 20 秒)。所以我创建了一些静态字段(属性)来保存这些资源,因为我相信当我启动这个 REST 服务时它们应该被初始化。
但是,我发现了一个奇怪的问题,即只有在我发送第一个请求时才会加载静态资源。所以对于第一个请求,总是需要 20 多秒才能得到响应,而后面的请求要快得多(因为已经加载了资源)。
谁能解释一下为什么 Java 在任何请求之前都不初始化这些静态字段?