Kafka实战笔记
关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图
- Kafka入门
- 为什么选择Kafka
- Karka的安装、管理和配置
- Kafka的集群
- 第一个Kafka程序
afka的生产者
- Kafka的消费者
- 深入理解Kafka
- 可靠的数据传递
- Spring和Kalka的整合
- Sprinboot和Kafka的整合
- Kafka实战之削峰填谷
- 数据管道和流式处理(了解即可)
- Kafka实战之削峰填谷
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框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”
且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。
N、机器学习、云计算,用来查漏补缺最好不过。
[外链图片转存中…(img-QaMMNJ2U-1715675391329)]