自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

〆、挽风的博客

我们总是梦想着伟大,却过着平凡。

  • 博客(147)
  • 收藏
  • 关注

原创 EasyExcel 数据字典转换器实战:注解驱动设计

*** 字典格式化* <p>* 实现将字典数据的值,格式化成字典数据的标签*/@Inherited/*** 例如说,SysDictTypeConstants、InfDictTypeConstants* @return 字典类型*/设计维度实现方案解决的问题声明式配置通过组合注解实现配置解耦业务代码与字典逻辑类型安全转换使用Hutool的Convert工具自动处理String→Integer等类型转换统一异常处理捕获异常并记录错误日志避免Excel解析中断。

2025-04-03 19:02:52 717

原创 Guava Cache 实战:构建高并发场景下的字典数据缓存

策略说明本案例实现缓存穿透非法 Key 导致频繁回源返回 DICT_DATA_NULL 空对象缓存雪崩大量缓存同时失效随机过期时间(可扩展)缓存击穿热点 Key 失效导致并发回源使用 LoadingCache 原子加载。

2025-04-03 18:04:03 235

原创 用脱敏代码彻底搞懂模板方法模式

/ 固定流程(不可变部分)定义模板方法@Override// 1. 判断是否禁用脱敏// 2. 执行脱敏// 抽象方法 → 必须实现// 抽象方法 → 必须实现//可变部分抽象出来定义抽象方法由具体子类实现//========================= 抽象方法 → 子类必须实现(核心差异点)========================/*** 获取注解上的 regex 参数* @param annotation 注解信息* @return 正则表达式*/

2025-04-02 18:12:56 178

原创 基于 Jackson 的 JSON 工具类实现解析与设计模式应用

解决的问题:JavaScript 的 Number 类型精度限制(2^53-1)。/*** Long 序列化规则* 会将超长 long 值转换为 string,解决前端 JavaScript 最大安全整数是 2^53-1 的问题// 超出范围 序列化位字符串 if(value . longValue() > MIN_SAFE_INTEGER && value . longValue() < MAX_SAFE_INTEGER) {} else {} } }/**

2025-04-02 11:27:05 588

原创 Spring Boot 可扩展脱敏框架设计全解析 | 注解+策略模式+模板方法模式实战

在数据安全合规要求下,敏感信息处理成为系统必备能力。

2025-04-01 19:11:37 855

原创 设计模式扩展 MyBatis Plus BaseMapper接口

/</</

2025-03-31 15:56:41 457

原创 装饰器模式与模板方法模式实现MyBatis-Plus QueryWrapper 扩展

/</</

2025-03-31 15:35:13 390

原创 策略模式与元数据映射模式融合 JSR 380 验证规范实现枚举范围校验

特性实现方式扩展性新增枚举只需实现 ArrayValuable,无需修改验证逻辑类型安全通过泛型 ArrayValuable 保证元数据类型与校验值类型一致校验语义明确@InEnum(CommonStatusEnum.class) 直观表达业务约束错误提示友好通过 context.buildConstraintViolationWithTemplate 动态生成错误信息。

2025-03-31 11:29:20 446

原创 华为云+硅基流动使用Chatbox接入DeepSeek-R1满血版671B

硅基流动AI聊天本地客户端

2025-02-13 18:57:57 1289 1

原创 抖音火山方舟使用Chatbox接入DeepSeek-R1满血版671B

以下参数均从火山方舟大模型接入指南提取模型框处填写如图所示模型id。

2025-02-13 18:42:04 2328 3

原创 百度千帆使用Chatbox接入DeepSeek-R1满血版671B

以下参数均从千帆大模型接入指南提取。

2025-02-13 18:05:18 713

原创 DeepSeek全生态接入指南:官方通道+三大云平台

🖥️(体验最新对话模型能力)

2025-02-13 17:25:32 2318 1

原创 Docker从入门到精通

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙盒机制,相互之间不会存在任何接口。几乎没有性能开销,可以很容易的在机器和数据中心运行。最重要的是,他们不依赖于任何语言、框架或者包装系统。docker官网docker中文库搜索镜像拉取镜像查看镜像启动镜像停止镜像移除容器。

2024-04-30 17:44:37 1274 1

原创 热门面试题

表类型如果是 MyISAM ,那 id 就是 8。表类型如果是 InnoDB,那 id 就是 6。InnoDB 表只会把自增主键的最大 id 记录在内存中,所以重启之后会导致最大 id 丢失。1、 用户向服务器发送请求,请求被 Spring 前端控制 Servelt DispatcherServlet 捕获(捕获)2、 DispatcherServlet对请求 URL进行解析,得到请求资源标识符(URI)。

2023-08-18 15:47:11 353

原创 Java POI实现Excel导出

【代码】Java POI实现Excel导出。

2023-01-13 14:28:02 493

原创 java注解以及如何利用反射获取注解的属性值

1.使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口2.分析:(1) @ interface用来声明一个注解,格式: public @ interface注解名{定义内容}(2)其中的每一个方法实际上是声明了一个配置参数(3)方法的名称就是参数的名称(4)返回值类型就是参数的类型(返回值只能是基本类型,Class , String , enum )(5)可以通过default来声明参数的默认值。

2023-01-13 11:43:56 2873

原创 Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录

FeignClient用于通知Feign组件对该接口进行代理(不需要编写接口实现),使用者可直接通过@Autowired注入。Spring Cloud应用在启动时,Feign会扫描标有@FeignClient注解的接口,生成代理,并注册到Spring容器中。生成代理时Feign会为每个接口方法创建一个RequetTemplate对象,该对象封装了HTTP请求需要的全部信息,请求参数名、请求方法等信息都是在这个过程中确定的,Feign的模板化就体现在这里。微服务端。

2022-12-22 12:02:16 1440

原创 SpringCloud Fegin解决java.lang.IllegalArgumentException: Body parameter 0 was null

造成这个错误的原因是,我在服务a 调用服务b 的时候参数传递的是null,而服务b通过 @RequestBody 来接收参数,@RequestBody 的 required 默认值是true。最近在工作中遇到了一个Fegin传参异常,特此记录便于日后查阅。

2022-12-22 11:30:23 1216

原创 DozerMapper:对象转换器使用教程

【代码】DozerMapper:对象转换器使用教程。

2022-12-22 11:28:12 650

原创 Method has too many Body parameters的处理办法

当使用Feign时,如果发送的是get请求,那么需要在请求参数前加上@RequestParam注解修饰,Controller里面可以不加该注解修饰 ,@RequestParam可以修饰多个,@RequestParam是用来修饰参数,不能用来修饰整个对象。注意 用来处理@RequestBody Content-Type 为 application/json、application/xml编码的内容。

2022-12-22 11:17:07 2217 2

原创 PDF文件的二进制流转图片文件的二进制流工具类

首先我们来实现pdf字节流转成img字节流。最近有个客户要求将pdf转成图片保存在桶。

2022-12-22 10:51:34 720

原创 Java根据URL获取文件的二进制工具类

【代码】Java根据URL获取文件的二进制工具类。

2022-12-22 10:46:24 1032

原创 SpringBoot 集成 WebSocket

WebSocket 是一种全新的协议。它将 TCP 的 Socket(套接字)应用在了web page上,从而使通信双方建立起一个保持在活动状态的连接通道,并且属于。

2022-12-22 10:38:14 1601

原创 超详细的Kafka入门,看这篇就够了

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。同时支持离线数据处理和实时数据处理。Scale out:支持在线水平扩展。

2022-12-21 16:45:58 1184

原创 JAVA反射之访问字段

Java的反射API提供的Field类封装了字段的所有信息:通过Class实例的方法可以获取Field实例:getField(),getFields(),getDeclaredField(),getDeclaredFields();通过Field实例可以获取字段信息:getName(),getType(),getModifiers();通过Field实例可以读取或设置某个对象的字段,如果存在访问限制,要首先调用来访问非public字段。通过反射读写字段是一种非常规方法,它会破坏对象的封装。

2022-12-20 18:14:50 181

原创 No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc

今天的疑惑报错,我大意了啊,没有闪。项目中引入了openfeign,没有在意版本。直到运行项目进行远程调用时报错。由于SpringCloud Feign在Hoxton.M2 RELEASED版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer会报错。加入spring-cloud-loadbalancer依赖 并且在nacos中排除ribbon依赖,不然loadbalancer无效。

2022-12-20 17:53:55 157

原创 idea中的调试按键(f5,f6,f7,f8)

如果断点处存在方法,f5 则强制进入方法内部,然后一步一步执行方法体,如果再遇到方法,则继续进入方法体,如此循环,直到执行到断点开始处;

2022-12-20 17:42:16 1107

原创 SpringData JPA使用聚合函数返回结果如何接收

我的需求是统计域名以及域名出现的次数。之前使用springboot jpa都是把数据库中的表跟实体类绑定,创建继承JpaRepository的接口。但是对于这种查询却无法绑定到原有的实体类。那么改怎么解决这种需求呢?

2022-12-20 17:36:23 745

原创 MyBatis-Plus枚举类型处理

男,女,后台存储的是1,2,前端展示的是男女。

2022-12-20 17:25:52 558

原创 mysql锁机制

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、V/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

2022-10-29 16:12:43 125

原创 mysql索引优化与失效场景

Like百分写最右,覆盖索引不写星;VAR引号不可丢,SQL高级也不难!不等空值还有or,索引失效要少用;全值匹配我最爱,最左前缀要遵守;带头大哥不能死,中间兄弟不能断;索引列上少计算,范围之后全失效;

2022-10-10 16:38:57 142

原创 EXPLAIN使用简介

【代码】EXPLAIN使用简介。

2022-10-09 10:31:21 562

原创 使用EasyExcel导出excel

【代码】使用EasyExcel导出excel。

2022-09-22 17:26:32 367

原创 EasyExcel常用注解

ExcelProperty 字段配置@ColumnWith 列宽@ContentFontStyle 文本字体样式@ContentLoopMerge 文本合并@ContentRowHeight 文本行高度@ContentStyle 文本样式@HeadFontStyle 标题字体样式@HeadRowHeight 标题高度@HeadStyle 标题样式@ExcelIgnore 忽略项@ExcelIgnoreUnannotated 忽略未注解。

2022-09-14 11:35:44 1990

原创 windows10搭建Elasticsearch8.4.1环境

下载后解压。

2022-09-13 18:06:21 554

原创 windows 上 Kafka 启动

1. 下载Kafka 官网下载链接本例 下载的是 kafka_2.12-3.1.0.tgz下载后解压2. 启动服务需遵循以下几步, 依次打开新的命令行启动, 也不要关闭之前的命令行窗口cmd 至 D:\tools\kafka_2.12-3.1.0启动 Zookeeper 服务, 默认端口 2181bin\windows\zookeeper-server-start.bat config\zookeeper.properties启动 Kafka 服务,默认端口 9092bin\wind

2022-05-21 18:26:12 6713 1

原创 谈谈new Thread的弊端及Java四种线程池的使用

1.new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub }}).start();说说弊端:a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c

2022-05-21 18:24:42 1238

原创 Spring注解@Transactional是什么?具体的使用方法

本篇文章,我将和大家介绍 Spring 中的一个注解 @Transactional,将介绍一下 @Transactional的基本概念以及具体的使用方法。希望本篇文章能够对对大家的学习有所帮助!一、Transactional声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。简而言之,@Transactional注解在代码执行出错的时候能够进行事务的回滚。二、实战1、首先我在Mysql

2022-05-21 18:14:36 1440

原创 SpringBoot项目Maven打包时跳过测试

解决方式:在pom.xml配置文件的properties中加入 <skipTests>true</skipTests>,这样在打包时就不是去测试SpringBoot项目的可执行性了。<properties> <java.version>1.8</java.version> <!-- 跳过测试 --> <skipTests>true</skipTests>&lt

2022-05-21 15:51:59 2759

原创 【SpringBoot DB 系列】Mybatis-Plus 多数据源配置

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,既然做增强,那多数据源这种硬性场景,肯定是有非常简单的解决方案的本文将实例演示 Mybatis-Plus 多数据源的配置I. 环境准备1. 数据库相关一个oracle,一个sqlserver2. 相关配置pom.xml<?xml version="1.0" encoding="UTF-8"?&gt

2022-04-03 21:04:41 1953

空空如也

空空如也

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

TA关注的人

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