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

网站建设 实训题广告行业怎么找客户

网站建设 实训题,广告行业怎么找客户,品牌网站的愿望清单怎么做,dede 添加演示网站以下是使用 EasyExcel 工具类实现异步导出功能的 Demo,包括用户发起导出请求后,系统先返回响应,后台读取数据并上传至 COS,最后通知用户下载的完整流程。 实现步骤 用户发起导出请求 前端调用导出接口,后端立即返回响应…

以下是使用 EasyExcel 工具类实现异步导出功能的 Demo,包括用户发起导出请求后,系统先返回响应,后台读取数据并上传至 COS,最后通知用户下载的完整流程。


实现步骤

  1. 用户发起导出请求

    • 前端调用导出接口,后端立即返回响应,表示导出任务已开始。
  2. 后台异步处理

    • 使用线程池异步执行数据读取、Excel 生成及上传至 COS 的操作。
  3. 上传至 COS

    • 使用腾讯云 COS SDK 将生成的 Excel 文件上传至 COS。
  4. 通知用户下载

    • 上传完成后,通过消息通知(如邮件、站内信)告知用户下载链接。

代码实现

1. 依赖引入

pom.xml 中添加以下依赖:

<!-- EasyExcel -->
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version>
</dependency><!-- 腾讯云 COS SDK -->
<dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.54</version>
</dependency><!-- Spring Boot Web -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><!-- Spring Boot Async -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-async</artifactId>
</dependency>

2. 实体类

定义 Excel 导出的数据模型:

@Data
public class ExportData {@ExcelProperty("ID")private String id;@ExcelProperty("名称")private String name;@ExcelProperty("时间")private String time;
}

3. 异步导出服务

实现异步导出逻辑:

@Service
public class ExportService {@Autowiredprivate COSClient cosClient;@Asyncpublic void exportDataAsync(String fileName, List<ExportData> dataList) {try {// 1. 生成 Excel 文件File file = new File(fileName);EasyExcel.write(file, ExportData.class).sheet("Sheet1").doWrite(dataList);// 2. 上传至 COSString bucketName = "your-bucket-name";String cosKey = "exports/" + fileName;PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, cosKey, file);cosClient.putObject(putObjectRequest);// 3. 通知用户下载String downloadUrl = "https://" + bucketName + ".cos.ap-guangzhou.myqcloud.com/" + cosKey;notifyUser(downloadUrl);// 4. 删除本地临时文件file.delete();} catch (Exception e) {e.printStackTrace();}}private void notifyUser(String downloadUrl) {// 实现通知逻辑,如发送邮件或站内信System.out.println("导出完成,下载链接:" + downloadUrl);}
}

4. 控制器

提供导出接口:

@RestController
@RequestMapping("/export")
public class ExportController {@Autowiredprivate ExportService exportService;@PostMapping("/start")public ResponseEntity<String> startExport() {// 模拟数据List<ExportData> dataList = new ArrayList<>();dataList.add(new ExportData("1", "测试1", "2023-10-01"));dataList.add(new ExportData("2", "测试2", "2023-10-02"));// 异步导出String fileName = "export_data_" + System.currentTimeMillis() + ".xlsx";exportService.exportDataAsync(fileName, dataList);// 立即返回响应return ResponseEntity.ok("导出任务已开始,请稍后查看下载链接。");}
}

5. 配置异步支持

在 Spring Boot 启动类上添加 @EnableAsync 注解:

@SpringBootApplication
@EnableAsync
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

6. 腾讯云 COS 配置

application.properties 中配置 COS 信息:

cos.secretId=your-secret-id
cos.secretKey=your-secret-key
cos.region=ap-guangzhou
cos.bucketName=your-bucket-name

初始化 COSClient

@Configuration
public class COSConfig {@Value("${cos.secretId}")private String secretId;@Value("${cos.secretKey}")private String secretKey;@Value("${cos.region}")private String region;@Beanpublic COSClient cosClient() {COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);ClientConfig clientConfig = new ClientConfig(new Region(region));return new COSClient(cred, clientConfig);}
}

测试流程

  1. 启动 Spring Boot 应用。
  2. 调用导出接口:POST /export/start
  3. 查看控制台日志,获取下载链接。
  4. 下载生成的 Excel 文件。

总结

通过以上代码,实现了以下功能:

  1. 用户发起导出请求后,系统立即返回响应。
  2. 后台异步读取数据并生成 Excel 文件。
  3. 将 Excel 文件上传至腾讯云 COS。
  4. 通知用户下载链接。

希望这个 Demo 对你有帮助!如果有其他问题,欢迎随时提问。 😊

http://www.dtcms.com/wzjs/236189.html

相关文章:

  • 怎么做 代刷网站江西百度推广公司
  • 网站建设预算方案搜索引擎数据库
  • 个人网站要备案么谷歌paypal官网登录入口
  • 湖北平台网站建设哪家好常见的网络直接营销有哪些
  • wordpress切换固定链接404青岛设计优化公司
  • 淘宝上成都网站建设网络营销手段有哪些
  • 建筑公司企业网站网站设计平台
  • 怎么样给一个网站做自然排名怎么优化
  • 很好用的炫酷WordPress主题seo接单平台
  • 虎门微网站建设网站免费制作平台
  • 什么网站做电子相册比加快淘宝关键词排名查询网站
  • 湖北省职业能力建设处网站提高网站搜索排名
  • 英文网站 字体大小seo推广有哪些方式
  • 用dw如何做网站首页长沙网站优化公司
  • 做名片去哪个网站大型网站建设平台
  • 诸城做网站的社群推广平台
  • 南京做网站建设有哪些内容卫星电视安装视频
  • 根据百度地图做网站郑州网络推广大包
  • 与做网站的人怎么谈判google下载官方版
  • 有没有可以做各种字体的网站企业官方网站推广
  • 网站建设费计入什么科目比较好软件培训班
  • 商业网站用什么语言做网站制作出名的公司
  • 先做网页设计还是先弄网站网站维护费用
  • 临沂网站建设做网站怎么进入百度推广账户
  • 行业自建网站三亚百度推广公司
  • 网站信息建设山西搜索引擎优化
  • 做视频解析网站是犯法的么电商培训课程
  • 网站 微信认证人工在线客服
  • 自己做的网站怎么做客服聊天seo搜索价格
  • 家居类企业响应式网站微信上怎么做广告推广