![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 76
Java相关技术
ascii_he
这个作者很懒,什么都没留下…
展开
-
xxl-job调度效率与分布式锁等待问题
xxl-job原生的调度处理,存在单线程以及数据库排它锁的局限与缺陷,在大量、高频任务调度下会有明显的效率问题,容易引发任务调度错失或调度不均等问题,即使使用集群化多实例部署也无法规避。本文尝试通过调度分片与分布式锁改造两方面探讨调度效率提升问题。原创 2023-03-11 14:46:27 · 2532 阅读 · 0 评论 -
xxl-job扩展基于dubbo调用的JobHandler
针对以dubbo为RPC通信组件的微服务架构,以xxl-job实现无侵入性的调度中心组件,分离调度与业务原创 2023-03-10 23:34:10 · 1200 阅读 · 0 评论 -
Spring自动配置Redis
原理参考ImportBeanDefinitionRegistrar+SPI简化Spring开发本文描述通过注解方式在spring中自动配置RedisTemplate,并支持启用注解方式的redis cache首先约定redis的配置文件如下:redis: host: 127.0.0.1 port: 6379 password: passwd db: 0 timeout: ...原创 2020-03-22 17:15:51 · 381 阅读 · 0 评论 -
Spring自定义注解定义AOP配置去xml
原理参考ImportBeanDefinitionRegistrar+SPI简化Spring开发spring中AOP使用非常广泛,引入方式一般分为两种,注解方式或xml方式。直接方式使用@AspectJ这样的注解,其缺点是需要手写切面实现业务逻辑,不太方便用第三方包做切面。xml方式打破了注解方式的局限,配置起来较为灵活,但xml毕竟偏向于配置,有一定的臃肿性。换句话说,在去xml的大趋势下,如何...原创 2020-03-22 16:46:19 · 306 阅读 · 0 评论 -
基于SpringAOP写个简单的Redis缓存
缓存应用场景非常多,Spring框架中对缓存的抽象与支持已经非常全面。有时候本地缓存是不够的,需要分布式缓存,本文尝试基于Spring+Redis实现一个简单的分布式缓存。spring-data-redis中已经有基于Redis的缓存实现,感兴趣的小伙伴可自行研究。网上也有一些优秀的开源方案,如阿里的jetcache可供参考。大部分方案在redis序列化时采用的是JDK序列化方式,这种方式的问题...原创 2020-03-22 15:58:44 · 147 阅读 · 0 评论 -
Spring自动装配guava EventBus
原理参考ImportBeanDefinitionRegistrar+SPI简化Spring开发guava EventBus是一个进程内事件总线,可以看做是消息队列的进程内版本,用作进程内解耦、通知、异步处理等。网上有很多对其介绍的。com.alpha.coding.common.event这个package下是对guava EventBus的二次封装,方便在spring框架下使用,结合spri...原创 2020-03-21 23:20:44 · 571 阅读 · 0 评论 -
Spring动态从配置文件定义bean
原理参考ImportBeanDefinitionRegistrar+SPI简化Spring开发有时候需要从配置文件(.yml或.json)反序列化成Object并注入到context中,例如我喜欢用一个yaml文件描述caffeine缓存定义:- {cacheName: s30, spec: "initialCapacity=100,maximumSize=500,expireAfterWri...原创 2020-03-21 22:22:48 · 504 阅读 · 0 评论 -
Spring动态注入外部文件到classpath
原理参考**ImportBeanDefinitionRegistrar+SPI简化Spring开发**一个比较典型的场景是配置文件的动态注入,配置文件与代码是分离的,常用的解决办法是配置中心,如Apollo、disconf、Eureka等。如果不满足配置中心的应用条件我们该如何解决呢?下面是简单的实现首先定义注入外部文件的注解:@Retention(RetentionPolicy.RUNT...原创 2020-03-21 21:42:05 · 583 阅读 · 0 评论 -
ImportBeanDefinitionRegistrar+SPI简化Spring开发
相信使用Spring的小伙伴会在开发中遇到配置各式各样的bean的情况,例如配置数据库,配置redis,配置AOP等。springboot已经很大程度上帮我们简化了配置,但实际业务开发中是否有其无法满足的地方呢?或者在传统spring项目中如何简化配置?如一些定制化的功能,再如去xml化。本文尝试使用ImportBeanDefinitionRegistrar+SPI的方式来实现。后文会有更多的应用...原创 2020-03-21 20:54:40 · 355 阅读 · 0 评论 -
Spring fastjson跨时区问题
相信有的小伙伴有这样的业务场景,服务端时区跟客户端(如浏览器)不一致,接口处理时需要转换掉。场景一:服务端查询出来的时间是UTC时间,客户端在中国,需要展示为东八区时间;场景二:客户端在中国,时间是东八区时间,服务端使用的UTC时间,存入时需要转换客户端时间为UTC时间。我们知道SpringMVC下,经常会配置HttpMessageConverter进行消息转换,如常用的ByteArrayH...原创 2020-02-28 17:59:33 · 5736 阅读 · 0 评论 -
Spring AOP失效:this引用问题处理
AOP技术使用非常广泛,在Spring体系中随处可见,如缓存、事务等。在Spring的bean中使用this引用,可能会导致AOP失效。简单例子:@Slf4j@Componentpublic class SysUserCache { @Autowired private SysUserMapper sysUserMapper; @Cacheable(cacheN...原创 2020-02-28 16:33:30 · 1977 阅读 · 0 评论