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()。

四、附录

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

相关文章

  • 教你如何使用Java实现WebSocket

    教你如何使用Java实现WebSocket

    这篇文章主要介绍了教你如何使用Java实现WebSocket问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java设计模式之模板模式(Template模式)介绍

    Java设计模式之模板模式(Template模式)介绍

    这篇文章主要介绍了Java设计模式之模板模式(Template模式)介绍,定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中,需要的朋友可以参考下
    2015-03-03
  • 更改Maven软件源为阿里云源的方法详解

    更改Maven软件源为阿里云源的方法详解

    这篇文章主要介绍了更改Maven软件源为阿里云源的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • springmvc使用@notNull注解验证请求参数方式

    springmvc使用@notNull注解验证请求参数方式

    这篇文章主要介绍了springmvc使用@notNull注解验证请求参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2024-01-01
  • Java动态初始化数组,元素默认值规则详解

    Java动态初始化数组,元素默认值规则详解

    动态初始化数组涉及先定义数组长度,后填充具体数据,适用于数据量已知但具体值未定的情况,这种初始化方式允许程序运行过程中赋值,并会根据数据类型设定默认值,如整型为0,字符串为null,动态初始化与静态初始化格式不能混用
    2024-10-10
  • java解压zip文件示例

    java解压zip文件示例

    这篇文章主要介绍了java解压zip文件示例,在获得一个以Zip格式压缩的文件之后,需要将其进行解压缩,还原成压缩前的文件,下面是代码示例
    2014-03-03
  • spring通过导入jar包和配置xml文件启动的步骤详解

    spring通过导入jar包和配置xml文件启动的步骤详解

    这篇文章主要介绍了spring通过导入jar包和配置xml文件启动,本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • JAVA 数据结构链表操作循环链表

    JAVA 数据结构链表操作循环链表

    这篇文章主要介绍了JAVA 数据结构链表操作循环链表的相关资料,需要的朋友可以参考下
    2016-10-10
  • springcloud实现注册中心Eureka

    springcloud实现注册中心Eureka

    这篇文章主要介绍了springcloud实现注册中心Eureka,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • SpringBoot环境Druid数据源使用及特点

    SpringBoot环境Druid数据源使用及特点

    Druid 是目前比较流行的高性能的,分布式列存储的OLAP框架(具体来说是MOLAP)。本文给大家分享SpringBoot环境Druid数据源使用及特点介绍,感兴趣的朋友跟随小编一起看看吧
    2021-07-07

最新评论