2013-03-04 62 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这样的技能。