2013-03-04 63 views
0

我有一個很大的CSV文件需要解析才能發送到REST API的發佈請求。發佈請求正文是一個json字符串。文件中的第一行具有鍵,並且以下行是值,例如,緩存服務器啓動後發佈的請求數據

名字,姓氏
約翰,能源部
馬克·吐溫

所以後身體會像{ 「姓」: 「約翰」, 「名字」: 「李四」}

這文件將用於爲開發人員創建測試數據。我將提供一個簡單的頁面,開發人員可以輸入帳號並點擊提交。目標是解析此文件並向POST API請求一個REST API服務。

我希望在每次請求進入時避免讀取文件,而是在啓動時緩存這些請求以避免每次讀取/解析文件的麻煩,這樣每次請求進入請求主體時都只需要從緩存中檢索。在啓動時緩存這些POST請求正確的方式去這裏?

此外,可能需要添加更多的CSV文件才能擁有各種數據。 什麼是使這種可擴展的方法?

CSV文件的格式(鍵名稱)將相同,因此每個文件都可以用相同的方式解析。

回答

0

它可以根據您的要求以N種方式實施,下面是一個簡單的例子。你可以保持一類像

class Contact{ 
    private String firstName; 
    private String lastName; 
} 

,並持有該值

class RestEnterpriseService{ 

    List<Contact> contacts; 

    @PostConstruct 
    init(){ 
    contacts = readFromJSON("JSON URL"); 
    } 
} 
0

這可以通過幾種方式來完成你的其他類。

如果您使用的是Spring框架或Java EE容器,則可以使用PostConstruct樣式解決方案,如上面所說的@AvinashSingh。

如果您在某個Servlet容器中,可以使用Servlet的Listener或其他方式執行啓動任務。

你也可以實現它你自己,有很多方法可以做到這一點。就像使用一個保護變量來檢測您的contacts列表是否被緩存;或者使用像Singleton Design Pattern這樣的技能。