自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(160)
  • 收藏
  • 关注

原创 java添加图片文字水印

【代码】java添加图片文字水印。

2025-03-17 17:22:33 94

原创 MySQL8最全JDBC连接URL

【代码】MySQL8最全JDBC连接URL。

2025-01-09 14:44:59 192

原创 SpringBoot数据字典字段自动生成对应code和desc

/作用是将当前类上的注解也追加到目标类上,如果不加的话,目标类及时加了@EnumTranslation注解,也不会集成该注解的所有注解//生成的属性名,不写默认原名+Desc//参考的枚举,会根据改枚举的code获取对应的descClass

2024-12-30 10:17:10 758

原创 SpringBoot生成Echarts报表图片

SpringBoot + PhantomJS + ECharts 生成图表图片。

2024-12-05 21:40:43 475

原创 Spring AOP 自定义Advisor

我们在使用AOP时通常都是直接使用@Before、@After、@Around、@AfterThrowing、@AfterReturning等注解来拦截方法的,其实Spring还有另外一种方式来实现AOP,那就是创建Advisor。:Advisor内部包含了PointCut(切点)和Advice(通知),PointCut表名要匹配哪些类的哪些方法,Advice表明要植入的代码。其实我们编写的@Before等注解最终还是会被解析为Advis。

2024-10-31 17:33:45 443

原创 Spring Cloud nacos监听配置

【代码】Spring Cloud nacos监听配置。

2024-10-28 11:21:16 438

原创 SpringMVC枚举类型字段处理

在日常的项目开发中经常会遇到一些取值范围固定的字段,例如性别、证件类型、会员等级等,此时我们可以利用枚举来最大程度减少字段的乱定义,统一管理枚举的值。SpringMVC中对于枚举也有默认的处理策略:对于@RequestParam,Spring是通过ConverterFactory来处理的,大致处理策略是根据枚举名称或枚举下标来转换枚举。对于@RequestBody,Spring是通过Jackson配置将json内的枚举值转换为对象的,大致处理策略同样是根据枚举名称或枚举下标来转换枚举。

2024-05-28 11:29:46 1361

原创 SpringBoot基于redis zset实现滑动窗口限流

*** 窗口时间*//*** 窗口时间内允许访问次数*//*** 时间单位*/@Component@Aspect@Autowired//我们自己实现的滑动窗口限流/*** 调用我们写的工具类判断是否超过阈值*/if(limit){throw new RuntimeException("限流");/*** 如果使用了Redisson,可以直接使用令牌桶来实现限流*/// 1、 声明一个限流器// 2、 设置速率,5秒中产生3个令牌。

2024-04-19 09:54:59 1327

原创 Spring Boot 获取maven打包时间

引入maven打包插件。

2024-03-14 22:36:34 634

原创 Feign远程调用上传和下载文件

在项目中我们通常会将一些基础功能封装在system服务中,然后其他服务统一调用system服务提供的服务。例如文件上传和下载接口,为了统一管理文件我们会把文件上传和下载功能统一封装在system服务内,其他服务调用system对外提供的上传下载接口。

2024-02-29 18:25:04 1032 1

原创 SpringData ES 调用分词器分词

【代码】SpringData ES 调用分词器分词。

2024-01-29 08:50:24 314

原创 SpringBoot Jackson 数据字典映射

在设计数据库时,我们通常会建立一个dict表,存储了项目内所有的字典名称和字典值,例如用户等级、用户职称等字典,然后其他表内的存储的值是dict_code,前端展示需要将dict_code映射为dict_value。User表有个sourceType字段(1=微信、2=在发版),返回给前端时需要返回sourceType(dict_code),和sourceTypeName(dict_key)。通过自定义JsonSerializer方式实现枚举值的动态转换。

2024-01-19 18:50:31 781

原创 MySQL深度分页优化

我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数据的深分页问题,并附上最近优化生产慢SQL的实战案例。这个SQL的执行时间如下:执行完需要秒,深分页为什么会呢?如果换成limit 0,10,只需要秒哦limit 0,10。

2024-01-18 08:46:13 1463 1

原创 MySQL虚拟列提高检索效率

MySQL 5.7 开始支持了一个新特性,该列的值是通过在列定义时包含的一个计算表达式得到的。当我们在where语句中对表内列进行计算时,会导致索引失效而降低查询效率,这种情况可以通过创建虚拟列,提前对字段进行计算,在查询时候直接通过虚拟列筛选即可。

2024-01-12 09:40:29 815

原创 Spring Cache 入门教程

Spring从3.1开始定义了org..cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;Cache接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache接口下Spring提供了各种xxxCache的实现;如RedisCache,EhCacheCache ,ConcurrentMapCache等;

2023-11-13 22:46:03 669

原创 MyBatis Plus整合Redis实现分布式二级缓存

MyBatis Plus整合 Redis 实现分布式二级缓存

2023-11-12 21:46:45 1312

原创 PostgreSQL基础入门

PostgreSQL 入门 教程

2023-11-11 16:53:44 1048

原创 Redisson实现延迟队列

Redisson实现的延迟队列是基于Redis的zset命令实现的,通过将数据存储到zset中,并设置过期时间作为score,通过定时任务轮询zset来实现延迟队列的功能。延迟队列是指在队列中存储带有过期时间的数据,在过期时间到达时自动从队列中移除。

2023-11-07 08:38:24 735

原创 TransmittableThreadLocal (TTL)

当前登录用户信息放在ThreadLocal内,然后service在处理业务逻辑时通过线程池来异步的处理,由于线程池内的线程与当前主线程不是同一个,因此获取不到主线程存放的用户信息。,但是他只有在创建新线程时才会拷贝(一个新线程只拷贝一次),而线程池内的核心线程是不会销毁的,会处理多个任务,因此就无法获取到当前登录人信息(或者会获取其他人的登录信息)。但是如果我们项目中的代码已经写好了,如果要修改成本很大,此时就可以通过Agent挂载的方式来动态修改Runnable类。方法:启动时配置 javaagent。

2023-11-07 08:23:46 262

原创 Maven 本地安装jar至本地仓库

【代码】Maven 本地安装jar至本地仓库。

2023-11-01 11:39:19 232

原创 MySQL创建定时任务定时执行sql

【代码】MySQL创建定时任务定时执行sql。

2023-10-27 10:10:27 906

原创 Dockerfile打包nginx镜像

default.conf配置。

2023-09-13 09:56:24 893

原创 IDEA使用Docker插件

1.执行命令,在ExecStart配置的后面追加保存后,执行命令重启docker然后查看端口是否开启,开启则表示成功。

2023-08-31 17:06:51 1116

原创 KubeAdmin方式搭建K8S(1.26.0)

k8s安装

2023-08-30 09:25:10 830

原创 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 1908

原创 Spring6源码编译、安装

spring源码编译和安装

2023-06-08 14:29:58 1549

原创 SpringMVC内容协商

SpringMVC内容协商主要的功能是:根据请求头或请求参数来控制接口返回的数据格式。通过HttpMessageConvert实现。acceptformatSpringMVC内置了很多格式的转换器我们可以利用这个功能来控制接口的返回格式。如:通过format控制接口返回xml引入依赖开启参数模式访问测试:http://localhost:8080/test?format=xml。

2023-06-05 11:33:59 847

原创 Spring MVC 实现request请求体多次读取

spring mvc配置request请求体多次读取

2023-05-20 17:31:37 1097

原创 MySQL锁冲突排查解决

MySQL锁冲突问题排查并解决锁冲突

2023-05-19 10:51:34 878

原创 SpringBoot Redis发布订阅

【代码】SpringBoot Redis发布订阅。

2023-05-09 09:33:26 1472

原创 java读取大数据量Excel按需读取(按需加载,速度快)

常用的poi工具,如easy-excel,hutool读取excel是都是先将整个excel加载到内存中分析,然后再一行行遍历,当excel文件太大时读取的时间就会更长,如果我们只需要读取excel的前几行来进行预览就不能使用这种方式,应该按需读取。

2023-04-25 11:29:26 2462

原创 hutool解析xml工具类

【代码】hutool解析xml工具类。

2023-04-14 16:04:32 3024

原创 Hutool工具树形工具

【代码】Hutool工具树形工具。

2023-04-12 09:15:37 1410

原创 docker:IPv4 forwarding is disabled. Networking will not work. 解决方法

当你使用docker容器的时候有可能出现以下情况:IPv4转发已禁用。是因为IPv4转发被禁用了,只需要开启就可以了。

2023-03-28 21:47:14 2184

原创 SpringBoot整合WebSocket

springboot整合websocket

2023-03-28 20:24:02 1538

原创 Nginx配置https

Nginx配置https

2023-03-28 09:29:30 1494

原创 SpringBoot配置Https

本地开发环境可以自己生成证书测试。

2023-03-27 18:07:25 2683

原创 Canal安装和使用

Alibaba Calan安装和使用

2023-03-24 21:54:01 1527

原创 CentOS7 部署DataX及DataX-web

Alibaba dataX数据同步工具安装部署

2023-03-22 09:35:25 2184

原创 Doris教程笔记

Doris教程

2023-03-18 15:13:00 3206

Mybatis整合Spring模拟代码

Mybatis整合Spring模拟代码

2024-06-04

通过SPI实现动态加载外部jar的实现类

通过SPI实现动态加载外部jar的实现类

2023-06-13

空空如也

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

TA关注的人

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