我一直假设静态初始化(例如对于我的持久性库)将在给定实例的请求之间持续存在?突然我想到也许我错了——也许我的应用程序的初始化对于每个请求都会重做,即使是在温暖的实例上也是如此。
这就是我问的原因:
我有一个接收实体列表并保存它们的请求处理程序(它恰好是一个 Google 端点,但我认为这不相关)。
实体可以是 20 种不同类型中的任何一种,因此我的静态初始化“注册”了所有 20 种不同的实体类型。我碰巧正在使用objectify,所以它看起来像这样:
@Api(name = "myendpoint")
public class MyEndpoint {
static {
ObjectifyService.register( EntityOne.class );
ObjectifyService.register( EntityTwo.class );
... x20
}
如果它正在为每个请求进行所有这些“注册”,那么我最好将其更改为仅注册请求所需的实体。
(另一方面,如果我是对的并且我的静态初始化仅在创建新实例时完成,那么我应该将尽可能多的初始化放入静态初始化中。)