【问题标题】:Cache data for post requests on server startup在服务器启动时缓存发布请求的数据
【发布时间】:2013-03-04 01:11:20
【问题描述】:

我有一个大型 CSV 文件,需要对其进行解析才能向 REST API 发出发布请求。发布请求正文是一个 json 字符串。文件中的第一行有键,接下来的行是值,例如

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

所以帖子正文将类似于 {"FirstName":"John", "LastName":"Doe"}

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

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

还可能需要添加更多 CSV 文件以获取各种数据。 有什么方法可以使其可扩展?

CSV 文件的格式(键名)将相同,因此可以以相同的方式解析每个文件。

【问题讨论】:

    标签: java rest caching post fileparsing


    【解决方案1】:

    它可以根据您的要求以 N 种方式实现,这里是一个简单的例子。你可以保留一个像

    这样的类
    class Contact{
      private String firstName;
      private String lastName;
    }
    

    在你的另一个持有这个值的类中

    class RestEnterpriseService{
    
      List<Contact> contacts;
    
      @PostConstruct
      init(){
        contacts = readFromJSON("JSON URL");
      }
    }
    

    【讨论】:

      【解决方案2】:

      这可以通过多种方式完成。

      如果您使用的是 Spring Framework 或 Java EE 容器,则可以使用 @AvinashSingh 上面所说的PostConstruct 样式解决方案。

      如果你在某个 Servlet 容器中,你可以使用 Servlet 的 Listener 或其他方式来完成启动任务。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-23
        • 1970-01-01
        • 1970-01-01
        • 2014-08-01
        • 2023-03-21
        • 2016-03-04
        • 2015-08-28
        • 2016-02-27
        相关资源
        最近更新 更多