1
我有一個restfull webservice,需要加載訓練好的模型文件並創建一些其他對象,並且需要大量時間。因此我只需要做一次(當啓動web服務時)。目前系統會在每次Web服務調用時加載受過訓練的文件和一些其他對象,代價很高。你能告訴我如何處理這個問題嗎?只在java web服務中加載文件和對象一次
我有一個restfull webservice,需要加載訓練好的模型文件並創建一些其他對象,並且需要大量時間。因此我只需要做一次(當啓動web服務時)。目前系統會在每次Web服務調用時加載受過訓練的文件和一些其他對象,代價很高。你能告訴我如何處理這個問題嗎?只在java web服務中加載文件和對象一次
您可以使用Singleton模式。它用於確保某些資源只創建一次。所以基本上,你可以有一個類,它的目的是舉例說明這些文件並具備Web服務調用這個類,像這樣(摘自Wikipedia):
public class Singleton {
private static volatile Singleton instance = null;
private static File file1;
...
private Singleton()
{
//Load whatever you need here.
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class)
if (instance == null) {
instance = new Singleton();
}
}
return instance;
}
...
//Other getter and setters for your files and other objects
}
然後,在你的web服務你可以這樣做:
...
Singleton.getInstance().getSomeFile();
...
您可以使用緩存 – Raman