当前位置: 首页 > news >正文

SpringBoot之一个注解完成所有类型的文件下载!

下载功能应该是比较常见的功能了,每个项目里都会有,简单的下载不难但是代码多也麻烦,对于复杂的下载代码更多更是麻烦。

如果我说现在只需要一个注解就能帮你下载任意的对象,是不是觉得非常的方便

@Download(source = "classpath:/download/test.txt")  
@GetMapping("/classpath")  
public void classpath() {  

}  

@Download
@GetMapping("/file")  
public File file() {  
    returnnew File("/file/csdn/test.txt");  
}  

@Download
@GetMapping("/http")  
public String http() {  
    return"http://localhost:1010/test/csdn.jpg";  
} 

对于简单的下载,是不是简单多了?那么对于复杂的下载考虑的问题多,代码实现也相对复杂,那么使用这个注解会更加的凸显便利!

需求:我们有一个平台是管理生活用品的,然后每个生活用品都会有一个生活用品图片,用一个字段存储的 http 地址

现在需要导出所有生活用品 图片的压缩包,图片名称需要用生活用品名称加 .png 后缀,需求上来说并不难,但是着实有点麻烦

  • 首先我需要将生活用品的列表查出来
  • 然后使用生活用品图片的地址下载图片并写到本地缓存文件
  • 在下载之前需要先判断是否已经存在缓存
  • 下载时需要并发下载提升性能等所有图片下载结束后
  • 再生成一个压缩文件
  • 然后再操作输入输出流写到响应中

实现的代码有200行,挺麻烦的。。。

文件路径是一个文件还是一个目录?字符串文本需要先写入一个文本文件中?http资源如何下载到本地?多个文件怎么压缩?最后怎么写到响应中?我才不想花时间管这些

@Download(filename = "生活用品.zip")  
@GetMapping("/download")  
public List<Life> download() {  
    return lifeService.all();  
}  

publicclass Life {  

    //生活用品名称  
    private String name;  

    //生活用品图片地址  
    //注解表示该http地址是需要下载的数据  
    @SourceObject
    private String url;  

    //注解表示文件名称  
    @SourceName
    public String getLifeName() {  
        return name + ".png";  
    }  
    //省略其他属性方法  
}  

通过在 Life的字段上标注某些注解,省时省心省力又优雅!

相关文章:

  • MySQL UPDATE 更新操作详解
  • 深入解析GORM的配置选项及示例
  • clickhouse清除system 表数据释放磁盘空间
  • 内容中台智能推荐服务创新路径
  • 网上怎么样可以挣钱,分享几种可以让你在家赚钱的兼职项目
  • 开发过程中的网络协议
  • SpringMVC(八)Knife4j 接口文档
  • XML 树结构
  • 爬虫逆向:逆向中用到汇编语言详细总结
  • 网络层协议
  • 教育直播培训系统源码解析:核心功能与实现方式
  • Android Room 框架公共模块源码深度剖析(四)
  • React Native 如何使用 Expo 快速开发?
  • 《C#上位机开发从门外到门内》3-2::Modbus数据采集系统
  • 缓存相关内容
  • 为wordpress核心functions文件瘦身
  • windows常用cmd命令
  • 【Unity3D】Addressables使用流程
  • S32K144入门笔记(十一):PDB的解读
  • 深度学习处理时间序列(1)
  • 宜昌百度网站建设/自动点击器怎么用
  • 官方网站改版建议/广州网络seo公司
  • 免费响应式模板网站/站长推广网
  • 整站网站优化推荐/百度网站排名优化价格
  • 深圳网站建设 手机网站建设/网络营销的营销理念
  • 网站页面太多怎么做网站地图/流量平台有哪些