- 博客(15)
- 收藏
- 关注

原创 「剑走偏锋 ·Java爬虫设计与实践」
叹:时运不济,命途多舛。值废时,冲牛马,煞榻下;忌努力,宜躺平。所行者皆废,所欲者皆不达。盖因时运不济,便纵有竭诚,难见成效。不若躺以听天命,平而顺自然。此乃:时也势也,运也命也,非人力所能移也。既得闲暇,更无他事,自当寻滋以为乐,无他,聊以消遣耳。所行者何为?曰:择一(网)站者而爬之。余虽喜书,好读书,读烂书,却不肯付之一文,皆因吾之钱财,当别作他用,岂肯轻易与之?择之者谁?曰:书旗也。爬虫有法,所行者,当循其道。一曰「载」,二曰「择」,三曰「析」,四曰「译」,五曰「排」,六曰「录」,依此六法,事乃成矣。
2024-08-23 13:56:01
1571

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

原创 实现 SpringBoot 定时任务的动态化配置【增、删、改】
在 springBoot 项目中,要使用定时任务变得十分容易,我们只需使用@EnableScheduling 开启定时任务支持,再配合 @Scheduled(cron = "cron表达式"),即可简单的集成定时任务功能,简单方便的同时,此种方式却也存在着硬编码问题,当我们需要动态的开启或关闭一个定时任务时,就需要修改源码重启项目,才能生效,达不到动态效果,下文教大家如何实现一个定时任务的动态增删改功能。首先看下我们要使用的三张表:scheduled_job :在定时任务中执行的工作 表表记录.
2021-12-12 00:07:23
14259
18
原创 坤刀小试 SpringBoot 与 JDK21 能擦出怎样的火花?
注:如果明确知道一个框架底层使用了反射获取无参构造以创建对象,或通过 get+字段名取值、set+字段名赋值方式时,就不要用 Record了,盲猜一波,或许某些涉及 JSON 转化的框架中可能会存在这样的代码,此时不要用 Record,Record 目前局限性还是挺大的,用处是真不多,也不能取代 lombok。”,对曰:“岂不闻,大道至简,万法归宗,及君悟,必歌之以「当~~~」”,其实,这种三方辅助框架,用多了,方不方便,也就那样,另外,我为何要写sql?中,且赋值只能通过构造赋值,其。
2024-06-19 14:35:57
1114
2
原创 设计模式 实现一个通用建造者
建造者模式,在设计模式中属创建型模式范畴,意在将一个复杂对象的构建过程与其表现相互分离,逐步构建复杂对象,但一个复杂对象去对应一个 builder 感觉略显“奢侈”,考虑有无可能,抽取一个通用 builder,用于所有复杂对象的构建过程,见下文。
2022-12-07 22:16:53
272
原创 关于 JDK11 HttpClient restricted header name: “xxx“ 异常详解
可以看到,17下,重新又放开了部分请求头,虽有小部分请求头默认受限制,但还可以使用如下方式,增加系统参数以完全绕过安全检查,所以,17环境下,可以放心大胆不受限制的拥抱全新 httpClient api。原因是,设计者基于安全考量,在设置请求头时,做了安全检查,且在JDK11版本下并未提供绕过机制,在更高版本下(LTS JDK 17)提供了绕过机制。基于以上,如果你正在使用JDK11,且有设置以上请求头的需求,暂时无解,可以改用 apache 的 httpClient。
2022-11-27 19:45:10
1555
原创 JDK 动态代理/手写 AOP/Proxy 增强
闲来无事,简单实现个 AOP 包装类,然而用处并不大,请酌情观看。 嗯 ~~?写的什么玩意?我还是用 AspectJ 吧。
2022-07-11 19:03:16
355
原创 SpringBoot 2.6.0 - 循环依赖异常 - 解决方案
在当下 springBoot 大环境下,我们更倾向于使用 java config 来配置和托管spring bean,而不是使用繁杂的xml,本人在使用 @Bean 去托管一个容器类 bean时,引发了一个循环依赖异常,特此记录一下(与 springBoot 版本相关)。问题代码如上代码,@PostConstruct 标记的初始化相关代码会在 @Bean 解析之前执行,在初始化代码中调用了用 @Bean 标记的方法,将会导致它提前执行,这样做可能会引发一个循环依赖异常,这与你 springBoot 的
2022-06-30 13:19:57
2494
原创 Java 业务参数校验/断言工具类
少量写起来倒也无妨,但一旦校验的东西多了,这种校验代码就会变得又臭又长,阅读时,也需费时思考校验的逻辑。于是,我们来定义一个Assert工具类来消除该重复,简化校验逻辑。代码变得干净又卫生。
2021-12-28 00:27:39
1698
原创 Spring整合Redis应用篇(五、延迟消费之zSet实现)
书接上文,上回书说到,spring + redis 实现延迟消费,另外还有zSet的方式。
2021-12-08 16:18:01
768
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
1623
原创 Spring整合Redis应用篇(三、订阅发布)
pom yaml 略,同上文无变化@AllArgsConstructor@SpringBootConfigurationpublic class RedisPubsubConfig { private final RedisConnectionFactory redisConnectionFactory; // spring依赖搜索:可以拿到spring容器中所有RedisMessagePublisher的实现类另外还有Map写法,感兴趣的话,大家可以搜索一下相关内容
2021-12-07 23:52:26
883
原创 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
426
原创 Spring整合Redis应用篇(一、基础应用)
pom依赖 <dependencies> ...无关内容略过... <!-- redis起步依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifa
2021-12-07 22:48:37
234
原创 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
891
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人