![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring源码
文章平均质量分 90
芋道
每天的每一天
这个作者很懒,什么都没留下…
展开
-
Spring Cloud Alibaba微服务组件-Nacos-配置中心
占位。原创 2023-11-17 09:48:52 · 84 阅读 · 0 评论 -
Spring Cloud Netflix微服务组件-Hystrix
上上图@HystrixCommand注解种鸽所有信息,默认就会被保存在这个元信息MetaHolder中去,spring的代码都是很统一的,这种注解的元数据一般都是用MetaXxxxx来保存的。大体流程:用户在调用findById()方法时,hystrix写的AOP切面类会拦截这个注解,拦截这个注解后会初始化一个GenericCommand命令,在初始化这个GenericCommand命令内部,就会通过这些线程池的配置,来初始化该命令特有的执行线程池。原创 2023-11-16 19:05:44 · 264 阅读 · 0 评论 -
Spring Cloud Netflix微服务组件-Eureka
分区容忍是能容忍一个或一部分节点挂掉后,整体系统也能正常工作(就是别的节点还是活着的),所以分布式系统中P是必须要有的。比如数据库主从架构,主从两个节点之间需要数据同步,主挂了,从还能提供服务,这就是分区容错的体现可用性是,每个请求都能得到正常的响应(不要求读到最新值)p分区容忍,既然是分布式系统那么分区容忍是逃不掉的,剩余的一致性和可用性相互矛盾,只能二选一有没有保证CA的系统,单机就是。因为单机没有分区,单机也就是只有一个节点,那么也就不需要网络通信,。原创 2023-11-15 17:02:08 · 1060 阅读 · 0 评论 -
Spring源码系列-Spring事务
540行,先通过扫描配置类,把配置类中用过通过@Bean自定义的Bean后置处理器,与通过Import注册到ioc容器中的第三方组件自己的Bean后置处理器等多种形式的处理器,通过在第543行中,来将它们全部从BeanDefinition,调用getBean方法实例化成处理器,并存入Ioc容器中的专有list中去。而事务的解析切面就简单了,Spring自己就提供了一个Advisor,都不需要去解析,直接就能拿到,拿到后事务的第一步解析切面的步骤就完成了。事务的增强逻辑是内置的,也就是spring自己写的。原创 2023-11-11 19:39:34 · 131 阅读 · 0 评论 -
Spring源码系列-Spring AOP
aop的运行原理就是,先把切面所有通知变成统一的Advisor,然后通过AspectJ的表达式匹配算法,判断出当前bean与哪些Advisor匹配,将这些匹配的Advisor们保存起来,在创建jdk动态代理对象时,将这些匹配的匹配的Advisor们,传入ReflctiveMethodInvocation中,然后就是通过递归调用,依次调用各个Advice,最后调到目标方法,然后再一步步的返回。有了上面的第17行,就能实现上上图中,select中调用的insert方法也是被动态代理过的方法。原创 2023-11-09 08:34:22 · 112 阅读 · 0 评论 -
Spring源码系列-框架中的设计模式
责任链执行器中有一个proceed(),方法内遍历执行负责人的invoke()方法,invoke方法以执行器作为参数:invoke(执行器),invoke(执行器)处理完业务后,执行器又调用proceed()方法,将索引移到下一个负责人位置。在方法体中,可以通过不同对Event类的判断来进行相应的处理。通过Spring接口的暴露,在实例化bean的阶段我们可以进行一些额外的处理,这些额外的处理只需要让bean实现对应的接口即可,那么spring就会在bean的生命周期调用我们实现的接口来处理该bean。原创 2023-11-09 08:32:03 · 264 阅读 · 1 评论 -
从@Async注解的实现原理看Sring Aop
通过博主 “why技术”的这篇文章:https://mp.weixin.qq.com/s/SdxnKw94H6V_UBD9oe6DGQ学到了很多解决问题,看源码的思路;原创 2021-09-09 16:42:11 · 384 阅读 · 0 评论