2013-10-30 74 views
1

這可能是一個基本問題,它有一些我不知道的解決方案,但基本上我有一個apache-tomcat web應用程序,它託管着許多不同的站點,每個訪問者需要訪問xml文件的內容。有大約6個不同的XML文件,這可能是。如果我允許每次訪問該文件(該文件在大量包含的頁面和資產中使用),則會打開太多文件,如果將它存儲在會話中,則會佔用過多的內存。在Java編譯時將文件內容讀入內存

我想要的是,當我編譯的類有一個類讀取每個文件到內存中,然後像常量那樣訪問數據。有沒有一個簡單的方法來做到這一點?

+1

可能考慮關閉文件:

一個從單身的維基百科頁面(http://en.wikipedia.org/wiki/Singleton_pattern)修改例。或緩存內容,但這似乎沒有必要。 –

+0

爲什麼不在應用程序啓動時將文件存儲在'ServletContext'中? –

+2

或換句話說,將其存儲在應用程序上下文中,而不是會話上下文中。 – EJP

回答

2

這是一個經典的情況下,單身人士將是有用的。單身經常用來只加載一次內容。

public class Singleton { 
    private static final Singleton INSTANCE = new Singleton(); 
    private String xmlFileContents; 

    private Singleton() { 
     // Call method to populate xmlFileContents field from XML file 
    } 

    public static Singleton getInstance() { 
     return INSTANCE; 
    } 

    public String getXMLFileContents() { 
     return xmlFileContents; 
    } 
} 
+0

謝謝,我會給這個鏡頭。 – PixMach