自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (3)
  • 收藏
  • 关注

原创 xxl-job源码解读:执行器Excutor调用链路

通过该接口定义调度中心对客户端发起的一系列请求,其中run方法就是执行任务。/*** 执行器心跳* @return 处理结果*//*** 闲置心跳检查(执行中或在队列中属于非闲置状态)* @param idleBeatParam 参数(仅任务ID)* @return 是否闲置*//*** 任务执行* @param triggerParam 执行参数* @return 处理结果*//*** 终止任务执行(删除任务的执行线程)

2023-09-19 14:55:37 537

原创 XXL-JOB 执行器运行报错NoClassDefFoundError HttpObjectAggregator

XXL-JOB 执行器运行报错NoClassDefFoundError: Could not initialize class io.netty.handler.codec.http.HttpObjectAggregator

2023-04-19 15:32:47 1385

原创 OpenFeign 自定义解码器Decoder 失效

项目上开发了OpenFeign的自定义解码器,用来统一处理返回结果。开发完后测试已经生效了,过两天后,这块代码没有变动的情况下,发现请求结果突然又不走自定义的解码器了。

2023-02-16 15:04:22 1749

原创 smart doc:自动生成接口文档拓展

smart doc 作为一个接口文档生成工具,可以根据代码的java doc注释,生成接口文档。同时已经对接到Torna接口平台。鉴于大家用的接口平台五花八门,Torna的功能可能不符合大家的需求,研究下是否可以基于smart doc,拓展功能对接其他接口平台

2022-09-20 15:40:09 870

原创 xxl-job源码解读:路由策略ExecutorRoute

本文基于xxl-job的2.3.1版本基于源码介绍定时任务的路由选取策略

2022-09-19 19:28:24 880

原创 xxl-job源码解读:触发器Trigger

本文基于xxl-job的2.3.1版本。

2022-09-14 16:30:48 1053

原创 xxl-job源码解读:触发器线程池TriggerPool

本文基于xxl-job的2.3.1版本。进行源码解读

2022-09-13 15:40:55 1234

原创 日期类型(LocalDate与Date)与字符串互转

LocalDate、LocalDateTime、Date、String类型互转同时推荐一些好用的工具类,使代码更加精简。

2022-09-01 10:52:35 2597

原创 xxl-job源码解读:调度器schedule

调用器主要的用于判断定时任务的执行时间,按时调用触发器(trigger),再由触发器去获取任务信息,执行预先定义好的程序。调度器的基本原理为启用一个线程,循环去查询所有任务状态,获取一个时间段内,已经到执行时间或者即将执行的任务,通知触发器去执行任务。定时任务的信息存储大致可分为两类:xxl-job调度器代码主要在 中调度器线程启动加载完毕之后,在收到调度器终止命令之前(一般为应用关闭),会一直循环执行:通过表,获取数据库锁,防止集群下调度器任务调度并发冲突读取 信息,获取未来5秒内执行的任务信息

2022-06-14 16:32:13 1115

原创 Java在不解压的前提下处理ZIP文件

在不解压zip的情况下,通过Zip4J工具包,直接以InputStream的形式,读取里面文件JDK已经内置了ZipInputStream 能够完成该工作,但是内置的API存在各种问题,中文乱码的处理、带密码ZIP的解压等。相比之下Zip4J工具包提供了更加方便快捷的处理。

2022-04-26 16:57:43 1000

原创 可过期信号量并发控制

可过期信号量并发控制需求背景供应商提供的接口,单个账号存在并发限制,超出并发数就会报错,并且支持并发数较低,经常会因为高频调用而导致报错。而供应商暂时不支持提高单个账号的并发数,给出的解决方案是提供多个账号。账号为次数充值账号,需要尽量做到次数均衡使用。问题分析我们需要保证接口不会因为并发数上限而报错的前提下,充分的使用多个账号的并发数,同时保证并发控制的效率:请求排队:需要根据总并发数,控制超出并发时,所有请求进入同一队列等待,先进先出集群支持:所有服务集群共享多个账号,需要支持集群

2022-04-14 13:38:45 256

原创 MybatisPlus多数据源原理及使用注意点

MybatisPlus多数据源原理及使用注意点本文介绍的是代码原理以及关联出现的使用注意点,以3.3.1版本为例基本的配置使用方式可以看这篇文章: https://blog.csdn.net/Azhuzhu_chaste/article/details/113741991官方文档(有毒,部分收费):https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611数据源加载流程1. 自动配置加载所有数据源信息在配置配置类的Dynamic

2022-02-16 13:51:01 4296

原创 Spring + Shiro 线程复用时session获取问题

项目上使用Shiro框架,在使用多线程进行业务处理的时候,发现用shiro获取到的session不对源码追踪,查找原因Shiro获取sessionSession session = SecurityUtils.getSubject().getSession()然后我们往下看 SecurityUtils 的 getSubject() 方法 /** * Returns the currently accessible {@code Subject} available to t.

2021-06-28 11:23:32 927

原创 定时任务Quartz开发技巧

本文以Quartz-2.3.2为例,集成于SpringBoot,任务数据持久化到数据库中禁止应用触发定时任务执行因为开发过程中我们使用的都是同一个数据库,而Quartz的触发原理是由应用循环查询数据库,抢占任务状态去执行,所以会出现自己并没有做定时任务开发,但是别人开发的定时任务会被自己本地抢占执行而报错。我们可以通过添加以下配置,禁用掉本地应用的任务触发:flowable.process.async-executor-activate: false本地开发调试任务逻辑虽然可以通过配置将应.

2021-05-26 12:00:40 302

原创 JavaScript setTimeout与setInterval非激活状态速度限制

因为项目上用到WebSocket,并且后端有使用nginx转发,所以在前端用setTimeout做了心跳维持的递归间隔循环,防止nginx超时切断连接。实际使用时,nginx超时时间设置的60s, 前端循环心跳是50s间隔,但是发现时不时就会因为nginx超时断开。问题排查该问题会出现在谷歌内核的浏览器中。监控前端的WebSocket消息发送记录,发现在切换标签后,心跳间隔会变成51s,过了一会之后,间隔会进一步延长至60s。因为消息发送需要时间,所以在切换标签之后,会在1~2轮心跳之后,ng.

2021-03-05 13:45:14 862

原创 SpringBoot+MybatisPlus+Druid 配置多数据源

项目上要用到多数据源,发现MybatisPlus从配置到切换数据源有一套快捷的实现,便选用了MybatisPlus的多数据源配置1. 引入依赖<!-- MybatisPlus 多数据源自动装配 --><dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> .

2021-02-07 15:32:13 4210 9

原创 CRON表达式翻译为中文描述

将CRON表达式翻译为中文描述,复杂的CRON表达式会有问题,直接用的话,请自行调整。package com.example.util;import lombok.experimental.UtilityClass;import org.apache.commons.lang.StringUtils;/** * CRON处理工具类 * * @author azhuzhu 2020/11/18 10:16 */@UtilityClasspublic class CronUtil {

2020-11-18 11:20:58 3536

原创 IDEA警告 xxxx is never use 处理

IDEA会将未被引用的代码扫描出来并标记warning,但是一些框架用到,却仍被扫描出来的方法就很难受。我们可以通过配置IDEA取消这个配置,但是一刀切又会导致我们没法通过这个功能及时发现无用的代码。针对以下场景,可以做一些配置的调整:在项目不使用lombok的情况下,取消Getter/Setter方法的提醒Controller层方法的提醒(IDEA社区版似乎不支持SpringMVC的扫描导致的问题,不知道有没有啥设置或者插件支持)独立工具包项目的Util方法提醒左上角 File -&gt

2020-11-13 10:05:00 1473

原创 文字在线生成图标

通过文字直接生成图标,有各类花里花哨的字体可选:http://www.akuziti.com

2020-10-26 17:52:50 3897

原创 Springboot + Quartz安全的结束应用

在关闭Springboot应用时,想要保证执行中的定时任务不被中断而导致程序数据错误,需要在Springboot关闭的时候,先停止定时任务的执行。废话不多说,直接上代码,具体原理见代码注释:package com.azhuzhu.job.config;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.quartz.Scheduler;import org.quartz.Schedu

2020-10-23 14:19:33 2288 8

原创 Flowable全局监听器-待办消息提醒

项目需要在每个待办Task到达时,发送一个消息提醒用户过来处理。不想在每个工作流单独加监听器,这时候可以使用Flowable的全局监听器。定义一个监听器package com.azhuzhu.flowable.listener;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.apache.commons.collections.CollectionUtils;import org

2020-10-16 10:41:31 7180 8

原创 Java分割PDF文件(itextpdf)

使用itextpdf,对PDF文件进行分割maven依赖<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version

2020-09-14 14:16:18 2886 3

原创 Linux模糊匹配文件名-批量删除文件

Linux模糊匹配文件名-批量删除文件首先,我们使用 find 命令,匹配我们要删除的文件,然后通过 -exec 执行批量删除:find . -name 'info.log.2020-06*' -exec rm {} \;命令含义:. 表示查找的目录范围,也就是当前目录下'info.log.2020-06*' 为查找的文件名,* 表示匹配任意字符串支持以下通配符:通配符作用*匹配任意字符串?匹配任意单个字符[]匹配 [] 内字符,可以按,-区分,也可无符

2020-08-19 09:50:02 10358 3

原创 AOP内部调用失效-解决方法

问题描述Spring的AOP是一个很强大的功能,就算不自行定义一些AOP,项目上也经常会使用到一些AOP注解,例如事务控制的 @Transactional而AOP在service方法的内部调用的时,无法触发进入切面处理。代码示例:/** * 测试Demo service impl * * @author azhuzhu 2020/7/11 14:20. */@Service@RequiredArgsConstructor(onConstructor = @__(@Autowired))

2020-07-11 14:49:33 1057

原创 POI-Excel导出:发现xxx.xlsx中的部分内容有问题

问题场景新项目上需要用到页面上Excel导出下载,于是把老项目中用了很久的一个Excel工具类拿了过来,因为老项目导出的是 xls文件,新项目需要导出 xlsx,就对着改了下,改完之后导出文件,发现会弹出提示点击是之后,文件能正常查看,文件内容也没问题。问题原因开始以为是新旧Excel类型的样式不兼容,最后检查发现是导出的文件流处理有问题。工具类中处理文件用的是字节流写入,其实不该这么做,特别是导出文件多半是有中文的情况,但是在xls文件中并没有产生问题 public static vo

2020-06-18 20:14:54 11702 11

原创 解决WebStorm与VSCode的代码格式化冲突

到了新公司发现同事用的都是VSCode,而VSCode的格式化代码与WebStorm的不一致。因为前后端都做,用惯了JetBrains全家桶,导致不太适应VSCode,最后所以打算调整一下代码的格式化,继续用webstorm开发。自闭合的标签,闭合前补充空格Settings > Editor > Code Style > HTML > Other(Tab页) > 勾选 in empty tag句尾冒号分割,永远使用单引号,多行保留最后一项的逗号Sett

2020-06-09 10:38:03 4671 8

原创 SpringBoot集成Quartz(建表语句获取+数据持久化配置)

本文主要介绍使用SpringBoot的起步依赖和融入SpringBoot数据库连接的yml配置。添加maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId></dependency>配置文件配置可以直接加到 application.yml

2020-05-26 17:56:11 3529

转载 antd-design/pro-table组件说明(官方readme)

@ant-design/pro-tableAntd官网没找到Pro-Table的相关说明文档, 下面是从依赖包里捞出来的readme。DemocodesandboxAPIpro-table 在 antd 的 table 上进行了一层封装,支持了一些预设,并且封装了一些行为。这里只列出与 antd table 不同的 api。Table属性描述类型默认值request一个获得 dataSource 的方法(params?: {pageSize: number;curr

2020-05-20 09:49:27 18419 2

原创 git-sh-setup: file not found 问题解决

windows10环境下,在使用ant design pro的umi进行添加模板时,从仓库克隆代码发生了以下报错:???? Start git clone from https://gitee.com/ant-design/ant-design-blocks.gitCloning into 'github.com/ant-design/ant-design-blocks'...Updating files: 100% (1947/1947), done.D:/work/Git/mingw64/li

2020-05-13 13:53:10 2661

原创 阿里社招二面(Java)

电话面试,30多分钟挂了,惨烈得一批,问的都是基础,但是都是实践上的基础,基础实在是太差了…下面问题没有按顺序问, 面试官dalao基本想到啥问啥,我按照类型整理了一下1.自我介绍,项目介绍请你自己选一个你参与的项目,介绍下项目的业务难点,技术栈,以及难点逻辑的实现思路2.Java基础方面说一下java类的加载流程创建一个对象时,构造方法的调用顺序,比如一个类继承了String的情...

2020-05-06 19:25:55 1360

原创 阿里社招一面(Java)

面试的部门为菜鸟,电话面试1.java基础相关java类的生命周期集合类了解过吗,选一个你比较了解的说说看(我选了HashMap,面试官一下子笑了出来,集合类经典面试题啊…)HashMap以及concurrentHashMap的原理参照ConcurrentHashMap,如果在多线程场景下使用HashMap,有什么手段提高效率又保证线程安全吗?主要考察提高并发效率的思路,从减小锁力度...

2020-04-30 17:25:49 719

原创 Spring常见面试题

1.声明spring-bean的注解有哪些?作用于对象的注解:@Repository:对应持久层,即DAO层,主要用于数据库相关操作;@Service:对应服务层,即Service层,主要涉及一些程序具体的复杂逻辑。@Controller:对应Spring MVC的控制层,即Controller层,主要用于接受用户请求并调用Service层的方法返回数据给前端页面;@Component...

2020-04-24 14:54:05 331

原创 百度社招一面(Java)

面试方式:视频面试面试内容:例行自我介绍,介绍自己的项目经验,以及项目上用到的技术栈Spring相关的东西(几乎是Spring经典问题全家桶)Spring中创建对象的注解有哪些,分别介绍下区别(刚刚开始没明白什么意思,听面试官的解释是声明spring的bean的注解)Ioc容器的加载流程Bean的生命周期,需要说下涉及到的一些接口名Bean的作用域有哪些spring常用的...

2020-04-23 23:33:43 1044

原创 AMQP-RabbitMQ详解

RabbitMQ是的一个实现了高级队列协议(AMQP)的消息代理软件,也称为面向消息的中间件,由美国微处理器厂商Rabbit公司开源。RabbitMQ服务器是用Erlang语言编写的。我们以RabbitMQ为例总结AMQP的实现。一、AMQP定义AMQP定义了网络协议和代理服务:高级消息交换协议模型:一套确定的消息交换功能,必须有三个部分:交换器(exchange):生产者把消息发到...

2020-04-20 23:04:54 774

原创 网易社招一面(Java)

网易社招一面Spring cloud相关的东西Eureka服务注册发现,对比其他组件Hystrix熔断与降级JVM相关的东西,说说GC的流程,相关的算法之类的,反正是面试必问的调优的手段,单个接口,前端也要输入地址回车之后,做了哪些见 https://blog.csdn.net/Azhuzhu_chaste/article/details/105150326...

2020-04-13 10:48:51 968

原创 线程同步的几种手段-JUC

一、同步手段的简单介绍JUC即 java.util.concurrent 包,里面提供了很多用于线程同步的类,下面我们来简单列举一下线程同步的手段:手动编程,使用同步关键字volatile 关键字,为变量添加内存屏障,禁止指令重排优化,只能保证变量可见性,不能保证原子性synchronized关键字,在进行数据对比修改的地方加上同步wait、notify、notifyAll等方...

2020-04-13 10:39:32 410

原创 Spring Cloud学习(6) - Gateway服务网关

本文为《深入理解Spring Cloud与微服务构建》第二版的读书笔记,有兴趣可以买来看看,各种配置介绍很详细,还有核心源码的讲解。一、什么是Gateway?Spring Cloud Gateway是Spring Cloud 官方推出的第二代网关框架,用于代替Netflix Zuul。Gateway不仅提供了统一的路由方式,并且基于Filter链的方式提供了网关的基本功能,同时建立在Spri...

2020-04-07 23:47:10 353

原创 CAS(比较并交换)详解

一、什么是CAS?CAS(Compare And Swap),就是比较并交换,是解决多线程情况下,解决使用锁造成性能损耗问题的一种机制。CAS包含三个操作数:变量内存位置(V)预期的变量原值(A)变量的新值(B)当要对变量进行修改时,先会将内存位置的值与预期的变量原值进行比较,如果一致则将内存位置更新为新值,否则不做操作,无论哪种情况都会返回内存位置当前的值。二、CAS的实践案例...

2020-04-07 10:22:22 3513 5

原创 Spring Cloud学习(5) - Zuul路由网关

一、Zuul有什么功能?Zuul作为路由网关组件,主要提供了以下功能:Zuul + Eureka + Ribbon,可以实现智能路由和负载均衡的功能,将请求按照某种策略分发到集群状态的多个服务实例中去将所有服务的API接口统一聚合,并统一对外暴露,方便外部系统调用,也方便开发测试。外部系统不需要了解微服务系统中的调用链路,也屏蔽了微服务系统的内部API接口可以集成身份认证和权限认证实现...

2020-04-05 11:02:23 245

原创 Spring Cloud学习(4) - Feign声明式调用

一、什么是Feign?Feign采用声明式的API接口的风格,将java http客户端绑定在其内部,并且内部继承了hystrix和Ribbon。让使用者可以很轻松的实现http请求过程,并提供了负载均衡以及服务不可用时的订制响应信息。二、Feign的工作原理通过在启动类加上@EnableFeignClients注解,开启feign功能。项目启动时,如果有该注解,就会进行包扫描,具体的扫包...

2020-04-03 14:50:46 230

flowable-6.6.0-官方离线文档.zip

官方离线文档

2021-03-16

settings.zip

WebStorm代码格式化兼容VSCode配置,直接导入到WebStorm覆盖Editor配置即可,实践与React项目,个别情况可能仍有冲突,欢迎反馈

2020-06-09

quartz-2.2.3-table-oracle.sql

quartz-2.2.3-Oracle建表语句,源于GitHub上的定时任务Quartz项目中的提供的建表语句,根据表结构的含义,补充了部分字段和表注释

2020-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除