
【曳凡】- Spring技术栈
文章平均质量分 88
探索spring系列源码
曳凡
这个作者很懒,什么都没留下…
展开
-
@Sync 注解导致系统OOM 原理探索
引论 今天发现了一篇讲多线程避坑的文章,是一位技术大佬写的,我也是非(zou)常(ma)认(guan)真(hua)的看完了这篇文章(文章链接如下),其中的第8点吸引了我,平时都是直接用的,并没有去真正了解他是如何实现的,这居然都有坑。我截取了文章的部分内容如下: 我当时觉得不应该呀,因为公司中也确实有挺过地方是直接使用@Async注解的,也从来没有因为线程太多而造成OOM情况,但是大佬也不太可能会欺骗我们,带着这个问题我去研究了一下@Async的实现。 探索 @Async注解大家应该用的挺多了吧,该注解使原创 2022-03-10 20:59:13 · 2448 阅读 · 1 评论 -
Spring 如何控制 bean 注入,全靠了这个注解
前言 在 spring 工程中经常能看到在服务配置中添加了某些服务配置后,这个服务就能用了,例如在yaml文件中配置了下面的配置后,oauth2在校验token时就不会去调动本地的服务,而是会调用token-info-uri中设置的uri来获取token的校验结果 security: oauth2: resource: token-info-uri: client: client-id: client-secret: 这是如何做到的呢?答案就是@C原创 2022-03-02 10:35:10 · 1764 阅读 · 1 评论 -
如何获取特定注解的Bean对象(@Qualifier注解的妙用)
1、问题引出 面向切面编程使得我们对于一个接口可以有多种实现。在spring源码中更是将接口编码做到极致。但是我们在获取对应接口的实现Bean时,该如何获取限定的Bean呢? 我以Spring的某一源码为例。spring中的负载均衡是通过在RestTemplate对象上添加@LoadBalanced注解来实现的。例如 只要我们在RestTemplate添加上了@LoadBalanced注解,那么这个RestTemplate对象就拥有了负载均衡的能力。 对于类对象添加能力的方式,相比大家都应该了解,是通过动原创 2021-06-19 20:19:03 · 1113 阅读 · 0 评论 -
深入理解Guava EventBus实现思想和实际用法
一、写在前面 随着企业业务趋向复杂,往往会碰到以下情况 在一个类中需要和多个其他类进行关联,造成类与类之间的耦合严重。 多处地方有相同的逻辑,造成代码重复性。 而有效的解耦方式就是使用事件机制,它主要的实现思想就是观察者模式。观察者模式主要涉及到三个概念:事件、订阅者和发布者。简单可以理解为发布者发布事件,订阅者消费对应的事件。 实现本地事件机制的有Guava的eventBus,Spring的Event。本文我主要想介绍一下Guava的eventBus。 二、传统的观察者模式 为啥这里需要先说一下传统的原创 2021-04-11 15:51:57 · 1563 阅读 · 0 评论 -
一文看懂spring事务原理
1、摘记 事务的作用 事务操作包含两个目的,数据一致以及操作隔离。 数据一致是指事务提交时保证事务内的所有操作都成功完成,并且更改永久生效;事务回滚时,保证能够恢复到事务执行之前的状态。 操作隔离则是指多个同时执行的事务之间应该相互独立,互不影响。 隔离级别 MySQL的InnoDB引擎提供四种隔离级别(即ACID中的I): 读未提交(READ UNCOMMITTED) 读已提交(READ COMMITTED) 可重复读(REPEATABLE READ) 串行化(SERIALIZABLE)原创 2021-06-02 16:36:31 · 873 阅读 · 2 评论