
java实战
文章平均质量分 94
码农参上
这个作者很懒,什么都没留下…
展开
-
简化本地Feign调用,老手教你这么玩
分享一下对FeignClient的改造思路,在开发过程中想要让Feign调用稳定访问特定环境,又不想来回修改@FeignClient中的url,通过添加一个配置轻松搞定。原创 2023-06-12 10:57:11 · 3596 阅读 · 0 评论 -
从实现到原理,聊聊Java中的SPI动态扩展
八股文背多了,相信大家都听说过一个词,SPI扩展。那么SPI扩展究竟是个啥,是怎么实现的,咱们来详细盘一盘它!原创 2023-02-16 13:47:41 · 653 阅读 · 1 评论 -
发布了一个jar包到中央仓库,我的心好累…
这里的坑,都被我踩平了!原创 2023-01-09 09:41:06 · 848 阅读 · 1 评论 -
魔改xxl-job,彻底告别手动配置任务
xxl-job是一款非常优秀的任务调度中间件,轻量级、使用简单,但是苦于手动注册任务久矣,今天就来魔改一下,实现任务的自动注册!原创 2022-10-11 10:03:48 · 945 阅读 · 0 评论 -
凭借SpringBoot整合Neo4j,我理清了《雷神》中错综复杂的人物关系
看《雷神4》前,你需要了解的阿斯加德的人的爱恨情仇…我用springboot加图数据库的方式帮你梳理清楚!原创 2022-09-19 10:44:29 · 432 阅读 · 0 评论 -
MyBatis-Plus联表查询的短板,终于有一款工具补齐了
mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直被大家所诟病。一旦遇到左右连接,你还是得老老实实的打开xml文件,手写上一大段的sql语句,今天就来看看这款工具如何应对吧。......原创 2022-07-25 10:52:09 · 1110 阅读 · 0 评论 -
没想到吧,Spring中还有一招集合注入的写法
Spring作为项目中不可缺少的底层框架,提供的最基础的功能就是的管理了。的注入相信大家都比较熟悉了,但是有几种不太常用到的集合注入方式,可能有的同学会不太了解,今天我们就通过实例看看它的使用...原创 2022-07-06 11:21:27 · 246 阅读 · 0 评论 -
实战派 | Java项目中玩转Redis6.0客户端缓存
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。哈喽大家好啊,我是Hydra。在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过telnet连接模拟客户端,测试了三种客户端缓存的工作模式,这篇文章我们就来点硬核实战,看看客户端缓存在java项目中应该如何落地。铺垫首先介绍一下今天要使用到的工具Lettuce,它是一个可伸缩线程安全的redis客户端。多个线程可以共享同一个RedisConnection,利用nio框架Netty来高效地.原创 2022-05-17 08:54:02 · 947 阅读 · 1 评论 -
基于Spring接口,集成Caffeine+Redis两级缓存
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。在上一篇文章Redis+Caffeine两级缓存,让访问速度纵享丝滑中,我们介绍了3种整合Caffeine和Redis作为两级缓存使用的方法,虽然说能够实现功能,但实现手法还是太粗糙了,并且遗留了一些问题没有处理。本文将在上一篇的基础上,围绕两个方面进行进一步的改造:JSR107定义了缓存使用规范,spring中提供了基于这个规范的接口,所以我们可以直接使用spring中的接口进行Caffeine和Redis两级缓存的整合改造在分布式环境下,.原创 2022-04-06 09:50:09 · 701 阅读 · 1 评论 -
Redis+Caffeine两级缓存,让访问速度纵享丝滑
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。随着不断的发展,这一架构也产生了改进,在一些场景下可能单纯使用Redis类的远程缓存已经不够了,还需要进一步配合本地缓存使用,例如Guava cache或Caffeine,从而再次提升程序的响应速度与服务性能。于是,就产生.原创 2022-03-28 08:37:36 · 638 阅读 · 0 评论 -
Guava中这些Map的骚操作,让我的代码量减少了50%
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多个方面。使用这些API一方面可以简化我们代码,使代码更为优雅,另一方面它补充了很多jdk中没有的功能,能让我们开发中更为高效。今天Hydra要给大家分享的就是Guava中封装的一些关于Map的骚操作,在使用了这些功能后,不得不说一句真香。先引入依赖坐标,然后开始我们的正式体验吧~<dependency> <.原创 2022-03-15 09:27:11 · 384 阅读 · 0 评论 -
泛型的类型擦除后,fastjson反序列化时如何还原?
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。哈喽大家好啊,我是Hydra~ 在前面的文章中,我们讲过Java中泛型的类型擦除,不过有小伙伴在后台留言提出了一个问题,带有泛型的实体的反序列化过程是如何实现的,今天我们就来看看这个问题。铺垫我们选择fastjson来进行反序列化的测试,在测试前先定义一个实体类:@Datapublic class Foo<T> { private String val; private T obj;}如果大家对泛型的类型擦.原创 2022-03-09 13:24:30 · 650 阅读 · 1 评论 -
JDK动态代理为什么必须要基于接口?
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。前几天的时候,交流群里的小伙伴抛出了一个问题,为什么JDK的动态代理一定要基于接口实现呢?好的安排,其实要想弄懂这个问题还是需要一些关于代理和反射的底层知识的,我们今天就盘一盘这个问题,走你~一个简单的例子在分析原因之前,我们先完整的看一下实现jdk动态代理需要几个步骤,首先需要定义一个接口:public interface Worker { void work();}再写一个基于这个接口的实现类:public class .原创 2022-02-24 10:42:08 · 4538 阅读 · 3 评论 -
Java不支持协程?那是你不知道Quasar~
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。在编程语言的这个圈子里,各种语言之间的对比似乎就一直就没有停过,像什么古早时期的"PHP是世界上最好的语言"就不提了,最近我在摸鱼的时候,看到不少文章都在说"Golang性能吊打Java"。作为一个写了好几年java的javaer,这我怎么能忍?于是在网上看了一些对比golang和java的文章,其中戳中java痛点、也是golang被吹上天的一条,就是对多线程并发的支持了。先看一段描述:Go从语言层面原生支持并发,并且使用简单,Go语言中的并.原创 2022-02-23 09:54:11 · 1218 阅读 · 0 评论 -
超硬核,8个类手写一个配置中心
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。配置中心是我们平常使用微服务架构时重要的一个模块,常用的配置中心组件也比较多,从早期的Spring Cloud Config,到Disconf、Apollo、Nacos等,它们支持的功能、产品的性能以及给用户的体验也各有不同。虽然说功能上有不少差异,但是它们解决的最核心问题,无疑是配置文件修改后的实时生效,有时候在搬砖之余Hydra就在好奇实时生效是如何实现的、如果让我来设计又会怎么去实现,于是这几天抽出了点空闲时间,摸鱼摸出了个简易版的单机配置.原创 2022-02-15 13:51:07 · 313 阅读 · 0 评论 -
5种高大上的yml文件读取方式,你知道吗?
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。在上一篇文章中,我们从源码角度分析了SpringBoot解析yml配置文件的全流程,那么我们今天就来点实战,总结一下除了烂大街的@Value和@ConfigurationProperties外,还能够通过哪些方式,来读取yml配置文件的内容。1、Environment在Spring中有一个类Environment,它可以被认为是当前应用程序正在运行的环境,它继承了PropertyResolver接口,因此可以作为一个属性解析器使用。先创建一个y.原创 2022-01-21 09:40:41 · 1664 阅读 · 0 评论 -
简单的Postman,还能玩出花?
Postman是一款我们在工作中使用频率非常高的API调试工具,估计很多童鞋在使用它时也比较粗暴,填好接口地址、参数,直接send就完事了,估计大家要说了,这么简单的东西还能玩出什么花来。今天就和大家安利几个非常实用、但是可能一直被忽视的功能,用完之后,简直不要太香!环境变量我们通过一个例子来看一下环境变量的用法,在一个项目的生命周期中,可能会有开发环境、测试环境、预上线环境、线上环境等众多的不同环境,这时候就可以通过环境变量来管理接口的地址以及端口。点击左侧的Environments,系统中默认已经原创 2021-08-06 11:00:19 · 402 阅读 · 0 评论 -
Java代码中,如何监控Mysql的binlog?
最近在工作中,遇到了这样一个业务场景,我们需要关注一个业务系统数据库中某几张表的数据,当数据发生新增或修改时,将它同步到另一个业务系统数据库中的表中。一提到数据库的同步,估计大家第一时间想到的就是基于binlog的主从复制了,但是放在我们的场景中,还有几个问题:第一,并不是需要复制所有表的数据,复制对象只有少量的几张表第二,也是比较麻烦的,两个业务系统数据库表结构可能不一致。例如,要同步数据库1的A表中的某些字段到数据库2的B表中,在这一过程中,A表和B表的字段并不是完全相同这样的话,我们只能通原创 2021-08-04 13:18:27 · 586 阅读 · 0 评论