Java 在服务器启动时缓存post请求的数据

Java 在服务器启动时缓存post请求的数据,java,rest,caching,post,fileparsing,Java,Rest,Caching,Post,Fileparsing,我有一个大的CSV文件,需要对其进行解析,以便向RESTAPI发出post请求。文件中的第一行有键,下面几行是值,例如 名字,姓氏 约翰,多伊 马克吐温 因此,帖子主体将类似于{“FirstName”:“John”,“LastName”:“Doe”} 此文件将用于为开发人员创建测试数据。我将提供一个简单的页面,开发者可以输入帐号并点击提交。目标是解析该文件并向RESTAPI服务发出POST请求 我希望避免每次请求进入时都读取文件,而是在启动时缓存这些请求,以避免每次读取/解析文件的麻烦,因此每次

我有一个大的CSV文件,需要对其进行解析,以便向RESTAPI发出post请求。文件中的第一行有键,下面几行是值,例如

名字,姓氏
约翰,多伊
马克吐温

因此,帖子主体将类似于{“FirstName”:“John”,“LastName”:“Doe”}

此文件将用于为开发人员创建测试数据。我将提供一个简单的页面,开发者可以输入帐号并点击提交。目标是解析该文件并向RESTAPI服务发出POST请求

我希望避免每次请求进入时都读取文件,而是在启动时缓存这些请求,以避免每次读取/解析文件的麻烦,因此每次请求进入请求体时只需要从缓存中检索。在启动时缓存这些POST请求是正确的方法吗

此外,可能需要添加更多的CSV文件,以获得各种数据。 有什么方法可以使它具有可伸缩性


CSV文件的格式(密钥名称)将相同,因此每个文件都可以以相同的方式进行解析。

可以根据您的要求以N种方式实现,下面是一个简单的示例。你可以像这样上课

class Contact{
  private String firstName;
  private String lastName;
}
在你的另一个类中,它持有这个值

class RestEnterpriseService{

  List<Contact> contacts;

  @PostConstruct
  init(){
    contacts = readFromJSON("JSON URL");
  }
}
class RestEnterpriseService{
列出联系人名单;
@施工后
init(){
contacts=readFromJSON(“JSON URL”);
}
}

这可以通过几种方式完成

如果您使用的是Spring框架或JavaEE容器,那么可以使用上面@AvinashSingh提到的
PostConstruct
风格的解决方案

如果您在某个Servlet容器中,则可以使用Servlet的侦听器或其他方式执行启动任务

你也可以自己实现它,有很多方法可以做到这一点。就像使用一个保护变量来检测你的
联系人
列表是否被缓存;或者使用类似于单例设计模式的技能