![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码
文章平均质量分 85
深入学习理解源码,学习大牛的代码设计思想
溪枫小白
这个作者很懒,什么都没留下…
展开
-
SpringBoot自动装配源码分析
当我们在Spring Boot应用中添加了该注解时,Spring Boot会根据约定大于配置的原则,自动配置一些常用的Bean和组件,从而简化开发流程。最后,根据一些条件对自动配置类进行过滤,并返回一个包含候选自动配置类和已排除自动配置类的。通过这种方式,Spring Boot能够根据约定大于配置的原则,自动加载和配置常用的Bean和组件,使开发者能够更加便捷地构建和部署应用程序。在这个方法中,它首先判断是否启用了自动装配,然后加载自动配置的元数据,并获取自动配置的入口。最后,返回自动配置的类名数组。原创 2023-07-24 16:14:21 · 294 阅读 · 0 评论 -
Nacos注册中心源码服务注册源码分析
nacos服务注册源码分析原创 2023-03-27 10:57:06 · 866 阅读 · 0 评论 -
spring事务源码底层实现
spring的事务有两种,一种是声明是事务,一种是编程式事务,这里我们讲的是基于注解实现的方式,为什么我们在一个方法上面加上一个@Transactional注解,程序就能自动管理我们的本地事务,我们知道在SpringBoot项目中要用到Spring的事务,在启动配置类上面要加一个@EnableTransactionManagement,我们看看这个注解为我们做了些什么东西,可以很明显看到这个是一个组合注解,通过Import注解给我们导入了一个叫做TransactionManagementConfig原创 2021-12-01 15:48:42 · 265 阅读 · 0 评论 -
SpringBoot里面事务是如何生效的
相信使用过SpringBoot框架的朋友们,应该很熟悉里面如何使用事务,只要在service实现类里面的方法上面添加一个@Transcation的注解,然后框架就会自动管理我们的事务,那么这个SpringBoot是如何做到这一点的呢,让我们一起来看看源码1.首先来看看DataSourceTransactionManagerAutoConfiguration这个类这个类实例化的实际也是利用了SpringBoot的自动装配原理,这里就不过多解释,因为我们在使用事务的时候已经引入了JdbcTemp原创 2021-11-30 15:28:54 · 761 阅读 · 0 评论 -
ReentrantLock源码分析
对于ReentrantLock我相信对于做Java的朋友应该不会陌生,它是juc并发工具包下面的一个并发工具类,对于一些存在资源竞争的情况下,我们经常会用到,和java关键字synchronized不同的是,ReentrantLock提供了更好的灵活性以及实现了公平和非公平锁,还有超时的概念,那ReentrantLock底层是如何实现的呢,那我们通过源码去深入了解他实现的原理,我们才能更好的使用。首先我们看我们平常使用ReentrantLock的例子这里通过构造方法初始化了Reentr.原创 2021-11-30 12:01:13 · 178 阅读 · 0 评论 -
SpringCloud Feign 源码底层如何调用Ribbon实现服务调用的负载均衡
在SpringCloud微服务中调用都不是直接用Ribbon进行服务调用,因为那样的化项目中的代码量会增加很多,微服务之间的调用是用Feign来进行调用,下面就是普通的一个接口调用例子这样就可以进行服务间的调用了,那么Feign底层源码是如何调用Ribbon对服务提供者进行负载均衡的调用呢,这里调用的源码入口是FeignInvocationHandler这个类,调用上图的orderFeignService.findOrderByUserId(id)其实就是在调用这个FeignInvocationHa原创 2021-05-07 08:46:11 · 582 阅读 · 0 评论 -
Ribbon源码是如何获取注册中心的服务列表
ribbon的作用是微服务客户端的一个负载均衡发现器,今天我们就讲一下ribbon底层源码是如何从注册中心获取服务列表的,下面我们就讲一下源码是如何实现的我之前有篇文章讲过,controller通过调用restTemplate.getForObject()方法最终会调用到LoadBalancerInterceptor的intercept方法,继续进入这个execute方法在这里会先去获取一个负载均衡器IloadBalancer,我们看看这个this.getLo...原创 2021-04-30 13:55:31 · 1829 阅读 · 6 评论 -
源码分析sentinel工作流程
一、sentinel简介:随着微服务的流行,服务和服务之间的稳定性变得越来越重要。伴随着公司用户量和流量的日益增加,对于数据库的压力是越来越大,Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护二、源码入口使用sentinel有两种方式,一种方式是对需要限流和降级的接口资源方法上面加入@SentinelResource注解还有一种就是通过拦截器的方式进行资源保护限流和降级,其实两种方法执行的关键方法都是同一段代码,今天我们就讲 一下通过注解这种aop切面的形式,sentinel原创 2021-04-24 11:12:37 · 323 阅读 · 0 评论 -
深入源码理解Ribbon的运行机制
一、什么是Ribbon?Ribbon是Netflix公司开源的一个负载均衡的项目,负载均衡分为两种,一种是服务端的负载均衡,比如nginx,还有一种是客户端负载均衡,而ribbon就是一个基于客户端负载均衡器,运行在客户端,一般在微服务中结合注册中心和Feign使用,今天我们来了解一下Ribbon底层源码是如何实现负载均衡的,这里我们使用SpringBoot项目来学习ribbon的源码分析二、源码入口这里我们使用Spring提供的RestTemplate工具类来发起微服务调用,使用过ribbon的程序原创 2021-04-18 09:53:39 · 394 阅读 · 0 评论 -
Nacos注册中心源码分析二(服务端注册底层源码分析)
上篇文章介绍了,nacos客户端底层是如何实现服务注册的,通过源码分析我们知道在客户端启动的时候,通过NacosAutoServiceRegistration这个类继承了ApplicaqtionListener,最终在spring容器启动的时候会回调onApplicationEvent这个方法,最终会通过发起http请求调用的Nacos服务端提供的接口,那么这篇文章我们来聊一下Nacos服务端是如何实现服务注册的逻辑的。一,源码下载 首先从github上面将Naocs的代码下载下来,然后...原创 2021-04-11 10:37:16 · 503 阅读 · 0 评论 -
duboo源码分析前篇(Spring 容器里面自定义标签应用与实现源码分析)
最近一直在看dubbo的源码,总寻思要总结一下源码的一个感受,这篇文章本篇我们讲解spring自定义标签的使用及原理,这应该是dubbo与spring整合源码分析的前置基础知识,只有掌握了如何在spring容器里面自定义标签的使用,以及spring是如何解析自定义标签的底层实现,才能开始阅读dubbo的源码,文章分为三个小节来讲解。为什么要自定义标签 自定义标签使用 spring是如何解析自定义标签 1.为什么自定义标签自定义标签是spring为了给开发人员扩展组件使用的,因为它提供了一原创 2021-02-27 13:00:39 · 74 阅读 · 0 评论 -
Nacos注册中心源码分析一
Nacos核心功能点服务注册:Nacos客户端会通过发送REST请求的方式向Nacos服务端注册自己的服务,发布元数据,比如ip地址、端口等信息。Nacos服务端接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。服务心跳:在服务注册后,Nacos客户端会维护一个定时心跳来持续通知Nacos服务端,说明服务一直处于可用状态,防止被剔除。默认5s发送一次心跳。服务健康检查:Nacos服务端会开启一个定时任务用来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳的实例会将它原创 2020-10-06 12:19:54 · 625 阅读 · 1 评论 -
SpringBoot自动装配原理源码分析
对于经常使用SpringBoot的程序员来说,SpringBoot大大简化了开发的工作量,节省了大量的配置工作,在SpringBoot启动的时候就自动将相关的配置给封装好了,也就是自动装配功能1.SpringBoot的启动入口@SpringBootApplication可以看到SpringBootApplication是一个组合注解 ,包含了@ComponentScan,@SpringBootConfiguration,@EnableAutoConfiguration,三个注解,点击Enable原创 2020-08-06 09:31:27 · 689 阅读 · 0 评论