spring专题
文章平均质量分 86
码炫课堂-码哥
一名有10余年经验的互联网老兵,历经从传统软件公司到大型互联网公司的洗礼,早年在中兴通讯等大型通信公司担任项目leader,后随着互联网的崛起,先后在前美团支付等大型互联网公司担任架构师。对互联网架构底层技术有相当的研究和独特的见解,在多个领域有着丰富的实战经验。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
模拟Spring缓存机制
学习必须往深处挖,挖的越深,基础越扎实!在日常开发中,缓存是提高系统吞吐量的常见手段。为此SpringBoot根据JSR107抽象出了一套缓存机制,其中大家最熟悉的可能是@Cacheable/@CachePut等注解。今天我们再造一个轮子,模拟SpringBoot的这套缓存机制。原创 2023-12-27 08:46:24 · 1202 阅读 · 0 评论 -
模拟Spring事务
我跟下面项目经理常说的一句话:常用的、有用的好好学,不常用的、性价比低的,先放一放。先广度,后深度,绝大部分时候广度比深度更重要。之前介绍了Spring事务传播机制,说实在的,平时用到的概率无限趋近于零。我也挺纠结,不写吧怕被大家指摘,写了吧又确实毫无卵用(我自己都已经忘光了)。这一篇我们来学习Spring事务,这个很有用。我不是说Spring事务有用,而是实现事务的思路很有用。你可能会问:难道Spring的事务没用吗?原创 2023-12-27 08:16:57 · 519 阅读 · 0 评论 -
模拟Spring事件监听机制
*** 退单事件*//*** 下单事件*/原创 2023-12-27 08:10:06 · 1252 阅读 · 0 评论 -
Spring事件监听机制
MQ允许跨JVM,因为它本身是独立于项目之外的,切提供了消息持久化的特性,而Spring事件机制哪怕使用了异步,本质是还是一种方法调用,宕机了就没了。同样的,对老项目改造时也是如此,如果你不知道原来的接口是干嘛的,最好不要去动它,宁愿新写一个接口,即一般提倡“对扩展开放,对修改关闭”。所以,你必须想办法把Spring的事件机制改成异步的,尽可能快地返回下单的结果本身,而不是等其他附属服务全部完成(涉及到其他问题暂时按下不表)。一个月后,京西搞了自建物流体系,用户下单成功后,还需要通知物流系统发货。原创 2023-12-14 09:34:25 · 1526 阅读 · 0 评论 -
spring 事件监听同时支持同步事件及异步事件
可以看到,异步事件通知主要依靠SimpleApplicationEventMulticaster 类中的Executor去实现的,如果这个变量不配置的话默认事件通知是同步的, 否则就是异步通知了,要实现同时支持同步通知和异步通知就得从这里下手;我的实现方式是为每个监听方法加个自定义注解,然后在multicastEvent方法中获取对应监听器上的注解,根据注解去决定是同步通知还是异步通知,这样就可以同时支持了,废话不多说,直接看代码。原创 2023-12-14 09:33:11 · 818 阅读 · 0 评论 -
@Scheduled源码解析
首先,丝毫不用怀疑,定时任务绝对不是Spring首创的,JDK本身就提供了很多种实现定时任务的方式。来看一种最简单的实现:实际上JDK还提供了定时任务线程池ScheduledThreadPool,我们可以直接通过Executors工具类获取:和一般的线程池不一样的是,ScheduledThreadPool会执行提交的任务。定时任务方法的命名方式都大同小异,都叫scheduleXxx(),后面还会在别处见到这种命名方式,注意一下。那Spring是如何实现@Scheduled的呢?原创 2023-12-13 10:34:55 · 1756 阅读 · 0 评论 -
总结6种@Transactional注解的失效场景
Transactional 可以作用在接口类类方法。作用于类:当把@Transactional 注解放在类上时,表示所有该类的public方法都配置相同的事务属性信息。作用于方法:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息。作用于接口:不推荐这种使用方法,因为一旦标注在Interface上并且配置了Spring AOP 使用CGLib动态代理,将会导致@Transactional注解失效@Autowired。原创 2023-12-12 09:28:55 · 1116 阅读 · 0 评论
分享