java进阶之路
文章平均质量分 90
进阶学习java底层原理、常见面试题
wu@55555
Elastic认证工程师、CSDN后端领域博客专家、阿里云专家博主、华为云·云享专家博主、51CTO专家博主、掘金社区认证优秀作者
——致力于家乡互联网技术建设
展开
-
后端常用技能:基于easy-poi实现excel一对多、多对多导入导出【附带源码】
easy-poi是一个基于Apache POI的Java端Excel 操作工具库,目的是为了简化java程序对excel文件的操作。该库提供了简单的API接口,支持excel的读写、格式化等,以及excel数据导出到pdf、word等文件。easypoi-base 是 easypoi的核心模块,提供了基本的 Excel 处理功能,如读取、写入、转换等。它不依赖于 Spring Boot,可以在任何 Java 项目中使用。原创 2024-05-08 18:01:50 · 3292 阅读 · 1 评论 -
后端常用技能:解决java项目前后端传输数据中文出现乱码、问号问题
思路1:后端响应体及前端blob对象声明编码格式为utf8思路2:application.properties中设置全局编码格式思路3:重新编码传输数据思路4:jvm启动脚本中添加-Dfile.encoding=utf-8原创 2024-05-08 18:01:34 · 2815 阅读 · 0 评论 -
maven、springboot项目编译打包本地jar、第三方jar包
一般我们在maven项目中都是通过引入pom坐标的形式来引入第三方jar包,但某些场景下,第三方是直接提供的jar包文件,这就需要我们从本地引入第三方包并进行打包。所以我们今天来看下如何进行本地引入第三方包操作原创 2024-01-02 21:33:08 · 1669 阅读 · 0 评论 -
spring:实现初始化动态bean|获取对象型数组配置文件
近期因为要完成实现中间件的工具包组件,其中涉及要读取对象型的数组配置文件,并且还要将其加载为bean,因为使用了版本,很多springboot的相关特性无法支持,因此特此记录,以方便后续同学有相同情况可以参考。原创 2023-09-19 09:02:24 · 3339 阅读 · 0 评论 -
java:实现用户扫码二维码自动跳转指定链接功能
近来接到要实现链接转二维码的需求,通过提供二维码给用户,让用户扫描后自动访问指定的H5页面,从而实现业务流转,这样的功能其实在其他很多场景也会用到,比如资产管理系统中,扫码资产二维码,从而实现库存盘点、自动入库、自动出库等功能今天就这类需求场景,给大家做一个讲解示例原创 2023-06-17 14:35:32 · 3615 阅读 · 0 评论 -
jetcache:阿里这款多级缓存框架一定要掌握
jetcache是阿里开源的基于java开发的缓存框架,支持多种缓存类型:本地缓存、分布式缓存、多级缓存。能够满足不同业务场景的缓存需求。jetcache具有上手简单、性能高效、拓展性强的特点。支持缓存预热 、缓存key前缀等功能。结合spring-cache使用,可以实现十分优雅的缓存类型切换。原创 2023-05-06 07:45:00 · 2490 阅读 · 0 评论 -
springboot:缓存不止redis,学会使用本地缓存ehcache
ehcache是基于java开发的本地缓存组件,无需单独安装部署,只要引入jar包就可利用它来实现缓存。所谓本地缓存,就是指存储在JVM堆内存中的临时缓存数据,当然ehcache本身也支持Off-Heap Store机制来使用堆外内存,本地缓存相较于redis性能和响应速度更高。Ehcache的本地缓存还支持过期时间、最大容量、持久化等特性,使得它可以适用于各种不同的缓存场景。原创 2023-04-22 02:04:49 · 5749 阅读 · 1 评论 -
JVM:线上服务CPU爆满,如何排查(三)
前一段时间出现了一个正则表达式引起的线上CPU爆满的问题,一开始没有在第一时间定位到问题,这里也特此记录一下,同时也系统的梳理下CPU爆满问题的排查思路和方法,为后续的同学提供参考。原创 2023-04-15 20:20:14 · 4198 阅读 · 0 评论 -
JVM:利用jstat查看GC信息及堆内存设置(二)
上一章我们讲解了排查OOM问题的思路和基本操作这一节,我们接着讲解如何解读垃圾回收(GC)频率、效率等信息原创 2023-03-26 19:58:34 · 3431 阅读 · 0 评论 -
JVM:全面理解线上服务器内存溢出(OOM)问题处理方案(一)
OOM问题的实际原因各种各样,就像我们开发时遇到的空指针错误,导致的原因可能有很多,但是排查的思路却差不多,大家之所以对OOM问题避而远之,是因为不能直接看到报错的代码位置,这一点需要我们借助jhatjmapMAT等工具来实现。但只要大家多操作,多积累经验,你会发现这个的排查也没有那么难,那么下期我们将结合实际的线上案例,来一起带大家推导OOM问题解决。原创 2023-03-18 21:42:48 · 6419 阅读 · 2 评论 -
springboot:接手老项目,领导让更新数据库说明文档,如何3分钟完成任务
screw是用来生成数据库表结构说明文档的组件,通过引用jar包,通过简单的配置就可以自动生成文档,相当于数据库中的swagger,支持html, word, md三种格式的文档如上所示,我们的数据库说明文档就做完了,当然我在实际项目中的数据库比上述演示的要大的多,但数据库越大,我们省的时间就越多。原创 2023-01-11 00:14:15 · 3849 阅读 · 6 评论 -
springboot:实现文件上传下载实时进度条功能【附带源码】
记得刚入行的时候,做了一个文件上传的功能,因为上传时间较久,为了用户友好性,想要添加一个实时进度条,显示进度。奈何当时技术有限,查了许久也没用找到解决方案,最后不了了之。近来偶然想到这个问题,于是决定整理一下实现方式,也为和我曾经一样碰壁的同学,提供一些思路。原创 2022-10-23 18:18:43 · 15244 阅读 · 5 评论 -
Java进阶:如何反编译jar包获取源码
某些没有提供源码的历史遗留项目,或者第三方jar包,我们常常需要进行二开,但是又没有源码,这时就需要进行反编译获取到项目源码。当然也不是所有的jar都能反编译的,某些做了防编译处理的则不能,但对于我们历史遗留的项目进行反编译则是完全可行的今天我们就来看看如何进行反编译。原创 2022-10-08 08:49:44 · 27488 阅读 · 0 评论 -
springboot:生成excel并且通过邮件发送
excel的生成以及邮件的发送,都应该尽可能的提取为工具类,如果实现的功能更多的更需要提取的单独的服务,通过pom依赖引入,更大化的实现方法的通用,和业务代码与通用代码之间的解耦。还是那句话,看十遍,不如动手操作一遍。原创 2022-10-06 11:25:27 · 3614 阅读 · 6 评论 -
springboot:java实现邮件及附件发送、HTML正文的三种方式(三)【附带源码】
从代码可以看出spring-boot-starter-mail与javax.mail的实现类似,都是通过类实现的至此我们已经讲解完三种实现邮件发送的方法了,实际上邮件发送功能实现非常简单,毕竟我们只是在前人做好的组件上开发,已经站在了巨人的肩膀上。之前演示的代码大家也可以直接应用到生产中,但一定不要盲目的复制粘贴,理解,自己一行一行的复写一遍代码,这是千万不能省的!原创 2022-10-06 00:05:04 · 2823 阅读 · 0 评论 -
springboot:java实现邮件及附件发送、HTML正文的三种方式(二)【附带源码】
邮件发送是我们日常开发中比较常见的功能,常用于预警信息提醒、统计数据定期发送等需求。一般该方法会由前人封装好,实际开发时只需要调用即可,但具体怎么实现的,如何从零实现邮件发送,这是我们要掌握的。上一次我们讲解了基于javax.mail实现邮件发送,今天我们接着讲解基于commons.mail的实现方式。原创 2022-10-05 11:57:13 · 6260 阅读 · 0 评论 -
springboot:java实现邮件及附件发送、HTML正文的三种方式(一)【附带源码】
邮件发送是我们日常开发中比较常见的功能,常用于预警信息提醒、统计数据定期发送等需求。一般该方法会由前人封装好,实际开发时只需要调用即可,但具体怎么实现的,如何从零实现邮件发送,这是我们要掌握的。所以今天我们就整理一下javax.mail实现邮件发送原创 2022-10-04 12:01:43 · 4606 阅读 · 0 评论 -
JAVA:如何优雅地书写if-else(策略模式、函数式接口、卫语句)
1. 引言在日常开发中我们常常遇到有多个if else的情况,之间书写显得代码冗余难看,对于追求更高质量代码的同学,就会思考如何优雅地处理这种代码,下面我们详细讨论2.原创 2022-08-10 00:47:23 · 2839 阅读 · 0 评论