查看了下spring官网的指南,发现只有一个上传文件,而且写的不是很好,对国人不是很友好,其实很多时候,我们更多的是用于读取本地的文件
关于classpath的理解
其实文件下载,说白了,就是找到路径,读取该文件,不管是最原始的file读取,还是以流的形式,对路径的理解是最重要的.
上图中,我们看到ResourceUtils下面有很多方法,其中就提供了一些方法,能够抓取到路径的,我们来验证下
哦,你有没有什么惊人发现?没错,classpath其实是指向了target下的class文件夹,那就十分有趣了,因为网上很多人都说classpath是指向resouces的,这里我在controller里加了一个json
但是没有生成对应的data1.json;这肯定跟springboot的机制有关;所以,正确的理解应该是:
classpath在springboot机制的约定下,是指向resources文件夹的.
选择较好的文件读取方式:ClassPathResource
因为用ResourceUtils在linux环境中,会出现读取不到jar的问题,所以我们选择以流的形式去读取;这样会更快,需要注意的是,ClassPathResource传递的路径是默认classpath的路径,也就是resouces下的,这里要注意
完整的示例:
这里后端处理完的str,其实是这样的
我记得以前没有springboot的时候呢,这种json字符串是需要我们自己处理的,自己也封装了一些json字符串的工具,但是呢,想找一些大公司出的产品,可能更加的全;
这里呢,推荐使用阿里巴巴的fastjson,在大数据量下,fastjson表现的更加友好:
fastjson使用方法
老样子,官网走起:https://github.com/alibaba/fastjson
官网基本写的很全了,操作下就可以了
fastjson api网站
https://www.w3cschool.cn/fastjson/fastjson-parseobject.html