抱歉,您的瀏覽器無法訪問本站
本頁面需要瀏覽器支持(啟用)JavaScript
了解詳情 >

前言

有段时间没在工作中使用Java语言来开发项目了,冲浪了一下才发现Java21的正式版本都已经发布了。遥想以前用Java11就感觉已经感觉是紧跟技术潮流了😭,下面就来学习每个版本都更新了什么吧~

img

前言

最近在一个接的私活中,甲方提出一个点击按钮,浏览器显示评价详情报表并打印的需求。这个需求乍一听的时候有点懵,不知从何下手,如何导出?如何适配多种报表格式、如何让浏览器打印?

经过一整子的资料收集,理清了技术的可行性以及所要使用的相关框架,下面先来看下最终实现的效果~

image-20230401162036334

前言

在2022年9月20日Java19发布啦,再次新增了几个特性,其中最吸引我的就是virtual Thread虚拟线程了,官方提供了虚拟线程的预览,这是Project Loom 的主要成果。

image-20221026155259895

虚拟线程是为了提高Java并发变成的可扩展性,是一种轻量级线程。它并不是为了替代原先的Thread线程,而是一种扩展,类似于Go语言中的协程,可以避免线程的上下文切换所带来的额外消耗。

在原先的线程模型中,每个Java线程都对应一个操作系统的线程,但virtual Thread则可以将多个虚拟线程对应到一个操作系统线程上去。

前言

最近遇到了一个需求:后台根据存储数据生成一个PDF报表,里面还会有各种分析图表,经过技术调研后,大体技术栈如下

  1. 使用poi-tl来作为报表模板,生成word文档
  2. 使用jfreechart来进行各种分析图表生成
  3. 随后将生成word文档转换为PDF即可

开放思路理清后,下面就来了解一下怎么编码把~

APT介绍

在JDK6的时候引入了JSR269的标准,即 Pluggable Annotation Processing API (可插入注解处理API),简称APT。它提供了在编译时期改变一些行为的相关API,例如生成一些新的JAVA文件。

大致处理流程如下图,APT在编译成class文件时执行,在这个过程中可以自定义相关行为,例如生成新的源文件(MapStruct),修改AST语法树(Lombok),直到所有编译处理器都没有在对JAVA文件进行修改为止,才会走到后续的生成Class文件的流程。

img