最新架构师之路——Java之Excel导出功能快速实现,java锁面试题

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

easyexcel

2.2.11

复制代码

二、核心工具类


/**

  • 下载

  • @param response web响应

  • @param datas 导出数据

  • @param clazz 实体类

  • @param fileName 导出文件名称

  • @return

*/

public static void download(HttpServletResponse response, List datas, Class clazz, String fileName) {

// parseHead(获取实体类定义的属性名称,也就是excel表头)

download(response, datas, clazz, parseHead(clazz), fileName);

}

复制代码

/**

  • 解析实体类

  • @param clazz 实体类

  • @return

*/

private static List<List> parseHead(Class clazz) {

Field[] fields = clazz.getDeclaredFields();

List<List> heads = new ArrayList<>();

for (Field field : fields) {

List head = new ArrayList<>();

// 在开发我们应该少不了swagger, 这个注解是swagger提供的,当然我们也可以自定义一个注解。(作用是为了属性名映射中文名称输出到excel表头)

ApiModelProperty apiAnnotation = field.getAnnotation(ApiModelProperty.class);

head.add(apiAnnotation.value());

heads.add(head);

}

return heads;

}

复制代码

/**

  • 下载

  • @param response web响应

  • @param datas 导出数据

  • @param head 表头

  • @param fileName 导出文件名称

  • @return

*/

public static void download(HttpServletResponse response, List datas, Class clazz, List<List> head, String fileName) {

// 设置web响应输出的文件名称

setResponseHeader(response, fileName);

try {

// 核心中的核心

export(response.getOutputStream(), head, datas, clazz);

} catch (IOException e) {

log.info(“无法获取响应流”, e);

}

}

复制代码

/**

  • 设置web响应输出的文件名称

  • @param response web响应

  • @param fileName 导出文件名称

*/

private static void setResponseHeader(HttpServletResponse response, String fileName) {

response.reset();

response.setContentType(“application/vnd.ms-excel;charset=utf-8”);

try {

response.setHeader(“Content-Disposition”, “attachment;filename=” + URLEncoder.encode(fileName + “.xls”, “UTF-8”));

} catch (UnsupportedEncodingException e) {

log.info(“不支持的编码”, e);

}

response.setCharacterEncoding(“UTF-8”);

}

复制代码

核心中的核心来了!!!

/**

  • @param os 字节输出流

  • @param head 表头

  • @param datas 导出数据

  • @param clazz 实体类

  • @throws IOException

*/

private static void export(OutputStream os, List<List> head, List datas, Class clazz) throws IOException {

if (datas == null) {

datas = new ArrayList();

}

ExcelWriter excelWriter = null;

BufferedOutputStream bos = new BufferedOutputStream(os);

try {

excelWriter = EasyExcel.write(bos, clazz).build();

WriteSheet testSheet = EasyExcel.writerSheet(“sheet1”)

.head(head)

.build();

excelWriter.write(datas, testSheet);

总结

面试难免让人焦虑不安。经历过的人都懂的。但是如果你提前预测面试官要问你的问题并想出得体的回答方式,就会容易很多。

此外,都说“面试造火箭,工作拧螺丝”,那对于准备面试的朋友,你只需懂一个字:刷!

给我刷刷刷刷,使劲儿刷刷刷刷刷!今天既是来谈面试的,那就必须得来整点面试真题,这不花了我整28天,做了份“Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”

image

且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

N、机器学习、云计算,用来查漏补缺最好不过。

[外链图片转存中…(img-QaMMNJ2U-1715675391329)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值