我一直假設靜態初始化(例如我的持久庫)將持續在給定實例的請求之間?突然間我發現,也許我錯了 - 也許我的應用程序的初始化對每個請求重做,即使在一個溫暖的實例。是否對每個請求重複靜態初始化?
這也是爲什麼我要問:
我有一個請求處理程序(它正好是谷歌的終點,但我不認爲這是相關的)接收實體的名單,拯救他們。
實體可以是20種不同類型的任何一種,所以我的靜態初始化「註冊」了所有20種不同的實體類型。我碰巧使用客觀化,所以它看起來是這樣的:
@Api(name = "myendpoint")
public class MyEndpoint {
static {
ObjectifyService.register(EntityOne.class);
ObjectifyService.register(EntityTwo.class);
... x20
}
如果做這一切爲每個請求「登記」,那麼我最好還是將其更改爲僅註冊請求所需的實體。
(在另一方面,如果我是對的,創造一個新的實例時,我的靜態初始化只做到,那麼我應該把儘可能多的初始化,我可以進入靜態初始化。)
請不要做任何事情會給我點 - 只是意識到我在3333! – Tom
您最好避免在靜態初始化塊中初始化對象化 - 您需要在類之前添加翻譯器,並且在註冊時,對象化不會將任何線程安全性應用於工廠。另外,這種方式會使本地調試/熱載入變得很痛苦。 – Nick