如何在 Spring Boot 上读取部署时的静态文件

我希望能够在 heroku 上在线部署我的 Spring Boot 应用程序。我的应用程序从位于我的资源文件夹中的静态 .json 文件加载数据。

http://img4.mukewang.com/615d29840001bf0003230221.jpg

到目前为止,我已经尝试过这段代码,但它不起作用。出于某种原因,我无法从 json 文件中读取数据。


    public List<Category> getAllCategories() throws FileNotFoundException

    {

       Gson gson = new Gson();

       ClassLoader classLoader = getClass().getClassLoader();

       File file = new File(classLoader.getResource("static/data/data.json").getFile());

       JsonReader reader = new JsonReader(new FileReader(file.getPath()));

       List<Category> allCategories = gson.fromJson(reader, new TypeToken<List<Category>>(){}.getType());


       return allCategories;

    }


肥皂起泡泡
浏览 159回答 2
2回答

倚天杖

由于data.json移动它被部署在Heroku里面JAR,请尝试使用getResourceAsStream(path)替代getResource()。伪代码可能是,Gson gson = new Gson();ClassLoader classLoader = getClass().getClassLoader();InputStream in = classLoader.getResourceAsStream("static/data/data.json");JsonReader reader = new JsonReader(new InputStreamReader(in));List<Category> allCategories = gson.fromJson(reader, new TypeToken<List<Category>>(){}.getType());

慕少森

您能否将数据文件夹直接移动到资源下,因为静态资源路径在这里可能会发生冲突,下面的使用应该可以工作。File&nbsp;file&nbsp;=&nbsp;new&nbsp;File(classLoader.getResource("data/data.json").getFile());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java