Spring Boot 读取静态资源文件的方法

 更新时间:2017年09月26日 10:25:07   作者:kinginblue  
本篇文章主要介绍了Spring Boot 读取静态资源文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一、需求场景

有时候我们需要在项目中使用一些静态资源文件,比如城市信息文件 countries.xml,在项目启动后读取其中的数据并初始化写进数据库中。

二、实现

静态资源文件 countries.xml 放在 src/main/resources 目录下

使用 Spring 的 ClassPathResource 来实现 :

Resource resource = new ClassPathResource("countries.xml");
File file = resource.getFile();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));

ClassPathResource 类的注释如下:

Resource implementation for class path resources. Uses either a given ClassLoader or a given Class for loading resources.

Supports resolution as java.io.File if the class path resource resides in the file system, but not for resources in a JAR. Always supports resolution as URL.

翻译过来就是:

类路径资源的资源实现。使用给定的ClassLoader或给定的类来加载资源。

如果类路径资源驻留在文件系统中,则支持解析为 java.io.File,如果是JAR中的资源则不支持。始终支持解析为URL。

三、Jar 中资源文件

上面也提到了,如果静态资源文件在文件系统里,则支持解析为 java.io.File,程序是能正常工作的。

到项目打包成 Jar 包放到服务器上运行就报找不到资源的错误了!

解决法案是:不获取 java.io.File 对象,而是直接获取输入流:

Resource resource = new ClassPathResource("countries.xml");
BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream()));

说明:构造得到 resource 对象之后直接获取其输入流 resource.getInputStream()。

四、附录

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • springBoot server.port=-1的含义说明

    springBoot server.port=-1的含义说明

    这篇文章主要介绍了springBoot server.port=-1的含义说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Spring Boot 接口加解密功能实现

    Spring Boot 接口加解密功能实现

    在我们日常的Java开发中,免不了和其他系统的业务交互,或者微服务之间的接口调用;如果我们想保证数据传输的安全,对接口出参加密,入参解密,这篇文章主要介绍了Spring Boot 接口加解密功能实现,需要的朋友可以参考下
    2023-04-04
  • maven配置本地仓库的方法步骤

    maven配置本地仓库的方法步骤

    本文主要介绍了maven配置本地仓库的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 不同Java泛型构造函数的详解

    不同Java泛型构造函数的详解

    这篇文章主要介绍了不同Java泛型构造函数的详解,因为对象是应用类型,对象赋值是指向同一个对象,所以如果需要保存对象某个时刻的状态,就需要构造函数来new一个新的对象。下面我们来详细了解一下吧
    2019-06-06
  • Spring Boot多数据源及其事务管理配置方法

    Spring Boot多数据源及其事务管理配置方法

    本篇文章主要介绍了Spring Boot多数据源及其事务管理配置方法,具有一定的参考价值,有兴趣的可以了解一下。
    2017-04-04
  • Java简单工厂模式详细解释

    Java简单工厂模式详细解释

    本文主要介绍了JAVA简单工厂模式(从现实生活角度理解代码原理)的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2021-11-11
  • Spring Cloud Feign报错问题解决

    Spring Cloud Feign报错问题解决

    这篇文章主要介绍了Spring Cloud Feign报错问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • java对double数组排序示例分享

    java对double数组排序示例分享

    这篇文章主要介绍了java对double数组排序示例,代码简单,下面我们直接上代码,需要的朋友可以参考下
    2014-03-03
  • skywalking源码解析javaAgent工具ByteBuddy应用

    skywalking源码解析javaAgent工具ByteBuddy应用

    这篇文章主要为大家介绍了skywalking源码解析javaAgent工具ByteBuddy应用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-03-03
  • MybatisPlus特殊查询的实现介绍

    MybatisPlus特殊查询的实现介绍

    这篇文章主要介绍了MybatisPlus查询投影、聚合查询、分组查询、等值查询、范围查询、模糊查询、排序查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10

最新评论