- 博客(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关注的人