2012-06-28 47 views
1

我有一個restfull webservice,需要加載訓練好的模型文件並創建一些其他對象,並且需要大量時間。因此我只需要做一次(當啓動web服務時)。目前系統會在每次Web服務調用時加載受過訓練的文件和一些其他對象,代價很高。你能告訴我如何處理這個問題嗎?只在java web服務中加載文件和對象一次

+0

您可以使用緩存 – Raman

回答

1

您可以使用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(); 
...