
java
爱码猿
不登高山,不知天之高也;不临深溪,不知地之厚也。
展开
-
TransmittableThreadLocal (TTL)
当前登录用户信息放在ThreadLocal内,然后service在处理业务逻辑时通过线程池来异步的处理,由于线程池内的线程与当前主线程不是同一个,因此获取不到主线程存放的用户信息。,但是他只有在创建新线程时才会拷贝(一个新线程只拷贝一次),而线程池内的核心线程是不会销毁的,会处理多个任务,因此就无法获取到当前登录人信息(或者会获取其他人的登录信息)。但是如果我们项目中的代码已经写好了,如果要修改成本很大,此时就可以通过Agent挂载的方式来动态修改Runnable类。方法:启动时配置 javaagent。原创 2023-11-07 08:23:46 · 262 阅读 · 0 评论 -
java中文数字、阿拉伯数字转换
static char[] cnArr = new char [] {‘零’,‘一’,‘二’,‘三’,‘四’,‘五’,‘六’,‘七’,‘八’,‘九’};static char[] chArr = new char [] {‘零’,‘十’,‘百’,‘千’,‘万’,‘亿’};static String allChineseNum = “零一二三四五六七八九十百千万亿”;static String num2 = “十百千万亿”;static String zero = “零”;原创 2023-06-12 18:11:34 · 1913 阅读 · 0 评论 -
Spring6源码编译、安装
spring源码编译和安装原创 2023-06-08 14:29:58 · 1554 阅读 · 0 评论 -
java读取大数据量Excel按需读取(按需加载,速度快)
常用的poi工具,如easy-excel,hutool读取excel是都是先将整个excel加载到内存中分析,然后再一行行遍历,当excel文件太大时读取的时间就会更长,如果我们只需要读取excel的前几行来进行预览就不能使用这种方式,应该按需读取。原创 2023-04-25 11:29:26 · 2474 阅读 · 0 评论 -
Hutool工具树形工具
【代码】Hutool工具树形工具。原创 2023-04-12 09:15:37 · 1410 阅读 · 0 评论 -
从0开始实现java Stream功能
流本身//当前节点的数据 protected T value;//用于获取下一个节点的表达式 protected StreamNodeSupplier < T > nextNode;//是否开始节点 protected boolean start;//是否结束节点 public boolean isEnd() {} }} }StreamNode构造类} }原创 2023-03-16 15:33:27 · 1742 阅读 · 1 评论 -
Java pdf转图片
【代码】Java pdf转图片。原创 2022-10-20 21:53:44 · 1735 阅读 · 0 评论 -
Java垃圾回收器
一、什么是GC,为什么要GC垃圾回收机制是java的招牌能力,极大的提高了开发效率,如今,垃圾回收几乎成为现代语言的标配,即使经过如此长时间的发展,java的垃圾回收机制仍然在不断的演进中,不同大小的设备,不同特征的应用场景,对垃圾回收提出了新的跳转。垃圾回收只发生于堆和方法区中二、垃圾标记阶段在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存货对象,哪些是已经死亡的对象,只有被标记为已经死亡的对象,GC才会在执行垃圾回收时,释放其占用的内存空间,因此这原创 2021-09-17 15:12:00 · 1026 阅读 · 0 评论 -
CentOS7安装 JDK
1解压2 配置环境变量cd /etc/profile.dvim java.sh#写入环境变量export JAVA_HOME=/usr/local/java/jdk1.7.0_67export CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"export PATH=$PATH:$JAVA_HOME/bin#让配置生效source /etc/profile查看是否安装成功java -version...原创 2021-08-11 22:39:49 · 349 阅读 · 0 评论 -
Hutool导出Exce
hutool导出excle设置多sheet设置表头样式,设置字体样式等示例 @Test public void test2(){ ExcelWriter writer = ExcelUtil.getWriter(true); writer.renameSheet("库龄"); writer.merge(0, 1, 0, 0, "序号", true); writer.merge(0, 1, 1, 1,"市场", true);原创 2021-06-02 22:27:34 · 2864 阅读 · 0 评论 -
java 实现图片裁剪指定宽度和高度
今天在工作中遇到了个问题:用户上传的人脸图片像素过大,硬件机无法识别,所以要对文件进行裁剪public class ImageCropUtils {/** * @param fromFileStr 要裁剪的图片路径 * @param saveToFileStr 保存的图片地址 * @param suffix 图片后缀 * @param width 裁剪后宽度 * @param height 裁剪后高度 * * @return 成功或失败 * */public static boole原创 2021-03-01 14:16:45 · 847 阅读 · 2 评论 -
启动jar包的shell脚本
#!/bin/bash#设置JAVA环境变量,如果已经设置了就无需设置export JAVA_HOME=/root/tools/jdk1.8.0_181export JRE_HOME=/$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin#ja原创 2021-02-26 12:16:59 · 1478 阅读 · 0 评论 -
SpringSecurity+JWT实现权限校验
1通过@ConfigurationProperties 读取配置文件的配置,允许用户自定义规则@ConfigurationProperties(prefix = "security.config")@Datapublic class SecurityConfigProperties { /** * token请求头名称 * */ private String tokenHeader; /** * token加解密使用的密钥 * */原创 2020-12-26 20:37:11 · 856 阅读 · 2 评论 -
SpringBoot 动态定时任务
SpringBoot 动态定时任务最近在工作中遇到了springBoot 动态执行定时任务的场景,通过数据库动态指定任务的执行频率,禁用或启动定时任务等,通过寻找资料,成功解决了这一场景, 分享一下把:happy:1 数据库设计:CREATE TABLE `spring_scheduled_cron` ( `cron_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', `cron_key` varchar(128) NOT NULL COMM原创 2020-11-13 14:36:26 · 1009 阅读 · 0 评论 -
easyExcel 导出 excel 自定义表头
easyExcel 导出 excel 自定义表头效果图:代码:@RequestMapping(value = "export",method = RequestMethod.GET) public void export(HttpServletResponse response,Integer yds,Integer sds,String type) throws Exception { if(StringUtil.isNumeric(type) || yds==null || sds原创 2020-11-04 14:43:09 · 4248 阅读 · 2 评论 -
SpringBoot 整合 shiro 前后端分离
SpringBoot 整合 shiro 前后端分离最近看了个 github 的开源项目,里面就使用到了shiro实现前后端分离权限认证,写的挺好的,并且现在也刚刚学完Vue,就那这个项目练练手了。我会将写这个项目的经验分享出来。虽然自己还很菜,当仍在努力中!! 附那个github的开源项目的地址:https://github.com/zykzhangyukang/Xinguan1.导入依赖,编写工具类Mavne 依赖<!-- 前后端分离 采用 jwt生成token-->.原创 2020-06-28 08:52:42 · 835 阅读 · 0 评论 -
SpringBoot实现任意切换语言功能
SpringBoot,thymeleaf实现点击切换语言首先在application.properties配置文件内 配置基础国际化文件的位置编写国际化文件:文件路径:language.properties(基础文件)login=登录username=用户名password=密码language_zh_CN.properties(中文)login=登录username...原创 2019-09-05 13:30:58 · 1647 阅读 · 0 评论 -
java Rambda表达式的几种写法
今天简单的学习了Rambda表达式,总结了rambda表达式的几种写法,可能不太正确,有错的地方还请各位大佬告诉我,我会努力改正的public class Test1 { /*对于Ramdba表达式 * Java8有一个短期目标和一个长期目标。 * 短期目标是:配合“集合类批处理操作”的内部迭代和并行处理 * * 长期目标是将Java向函...原创 2019-03-19 09:22:06 · 830 阅读 · 0 评论 -
ArrayDeque的常用方法,自己模仿ArrayDeque
第一次写文章,这是我看java源代码自己模仿写的ArrayDeque,就当做对自己的一次复习吧,希望对你们有所帮助,代码有什么错的地方还请见谅 代码如下public class MyArrayDeque<E> { private Object[] elements; private int head;//头部下标 始终未0; private in...原创 2019-03-17 08:00:19 · 873 阅读 · 1 评论