自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 业务参数校验/断言工具类

通常,我们在写后端业务逻辑时,可能会存在多处,像如下断言式的校验代码: public static void main(String[] args) { // 伪代码 // 业务判空 if (xxx == null) { throw new RuntimeException("xxx 不能为空"); } .... // 模拟转账业务 Big

2021-12-28 00:27:39 1452

原创 MyBatis Plus 动态拼接查询条件/sql动态组装/QueryWrapper 合并

首先,我们需要知道字段和条件之间的对应关系,比如,对于 username字段,要使用 eq, 还是 like呢?看起来依然是十分啰嗦,于是,我们来简单封装一个工具类,根据传入的对象,不为空的字段,就动态拼接查询条件。接下来定义一个工具类,根据传入的实体对象,返回一个拼接完成的QueryWrapper查询对象。接下来,在Controller 只需如下,便能完成sql的动态组装。本文默认大家都已熟悉MyBatis Plus基本操作,不赘述。2022年1月27日 修订驼峰字段问题。代码变得干净又卫生。...

2021-12-25 13:56:48 21224 18

原创 实现 SpringBoot 定时任务的动态化配置【增、删、改】

在 springBoot 项目中,要使用定时任务变得十分容易,我们只需使用@EnableScheduling 开启定时任务支持,再配合 @Scheduled(cron = "cron表达式"),即可简单的集成定时任务功能,简单方便的同时,此种方式却也存在着硬编码问题,当我们需要动态的开启或关闭一个定时任务时,就需要修改源码重启项目,才能生效,达不到动态效果,下文教大家如何实现一个定时任务的动态增删改功能。首先看下我们要使用的三张表:scheduled_job :在定时任务中执行的工作 表表记录.

2021-12-12 00:07:23 11692 18

原创 设计模式 实现一个通用建造者

建造者模式,在设计模式中属创建型模式范畴,意在将一个复杂对象的构建过程与其表现相互分离,逐步构建复杂对象,但一个复杂对象去对应一个 builder 感觉略显“奢侈”,考虑有无可能,抽取一个通用 builder,用于所有复杂对象的构建过程,见下文。

2022-12-07 22:16:53 199 1

原创 关于 JDK11 HttpClient restricted header name: “xxx“ 异常详解

可以看到,17下,重新又放开了部分请求头,虽有小部分请求头默认受限制,但还可以使用如下方式,增加系统参数以完全绕过安全检查,所以,17环境下,可以放心大胆不受限制的拥抱全新 httpClient api。原因是,设计者基于安全考量,在设置请求头时,做了安全检查,且在JDK11版本下并未提供绕过机制,在更高版本下(LTS JDK 17)提供了绕过机制。基于以上,如果你正在使用JDK11,且有设置以上请求头的需求,暂时无解,可以改用 apache 的 httpClient。

2022-11-27 19:45:10 927

原创 JDK 动态代理/手写 AOP/Proxy 增强

闲来无事,简单实现个 AOP 包装类,然而用处并不大,请酌情观看。 嗯 ~~?写的什么玩意?我还是用 AspectJ 吧。

2022-07-11 19:03:16 280

原创 SpringBoot 2.6.0 - 循环依赖异常 - 解决方案

在当下 springBoot 大环境下,我们更倾向于使用 java config 来配置和托管spring bean,而不是使用繁杂的xml,本人在使用 @Bean 去托管一个容器类 bean时,引发了一个循环依赖异常,特此记录一下(与 springBoot 版本相关)。问题代码如上代码,@PostConstruct 标记的初始化相关代码会在 @Bean 解析之前执行,在初始化代码中调用了用 @Bean 标记的方法,将会导致它提前执行,这样做可能会引发一个循环依赖异常,这与你 springBoot 的

2022-06-30 13:19:57 1962

原创 Spring整合Redis应用篇(五、延迟消费之zSet实现)

书接上文,上回书说到,spring + redis 实现延迟消费,另外还有zSet的方式。

2021-12-08 16:18:01 685 1

原创 Spring整合Redis应用篇(四、延迟消费之监听Key失效事件)

pom yaml 略,同上文无变化,配置类如下,注释掉上文无关内容,大家看变化@AllArgsConstructor@SpringBootConfigurationpublic class RedisPubsubConfig { private final RedisConnectionFactory redisConnectionFactory; // 依赖搜索 // private final List<RedisMessagePublisher> re

2021-12-08 00:16:39 1505

原创 Spring整合Redis应用篇(三、订阅发布)

pom yaml 略,同上文无变化@AllArgsConstructor@SpringBootConfigurationpublic class RedisPubsubConfig { private final RedisConnectionFactory redisConnectionFactory; // spring依赖搜索:可以拿到spring容器中所有RedisMessagePublisher的实现类另外还有Map写法,感兴趣的话,大家可以搜索一下相关内容

2021-12-07 23:52:26 824

原创 Spring整合Redis应用篇(二、接口数据缓存)

pom依赖 <dependencies> <!-- redis起步依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </de

2021-12-07 23:06:17 369

原创 Spring整合Redis应用篇(一、基础应用)

pom依赖 <dependencies> ...无关内容略过... <!-- redis起步依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifa

2021-12-07 22:48:37 192

原创 SpringBoot AbstractRoutingDataSource + MyBatis 多数据源配置/动态切换数据源

POM依赖如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency&

2021-11-02 16:45:15 741

空空如也

空空如也

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

TA关注的人

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