![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
框架
文章平均质量分 61
耿向前
这个作者很懒,什么都没留下…
展开
-
分布式锁的使用:Redisson(redissonClient);以及核心代码分析
所有竞争这把锁的线程都要判断在这个key下有没有自己线程的字段,如果没有则不能获得锁,如果有,则相当于重入,字段值加1(次数)重点在下图,主要实现,然后执行里面的lua脚本语言,返回 数据,就算就算加上锁了(广播0表示资源可用)这里用的数据结构是hash,hash的结构是: key 字段1 值1 字段2 值2。用在锁这个场景下,key就表示锁的名称,也可以理解为临界资源,字段就表示当前获得锁的线程。初始化RedissonLock对象 ,并且根据入参名字相当于创建了一个全局的key的锁。...原创 2022-08-08 10:56:14 · 1654 阅读 · 1 评论 -
如何更优雅的使用多线程-------@Async
@Async注解使用条件:@Async注解一般用在类的方法上,如果用在类上,那么这个类所有的方法都是异步执行的;所使用的@Async注解方法的类对象应该是Spring容器管理的bean对象;调用异步方法类上需要配置上注解@EnableAsync快速使用SpringBoot应用中需要添加@EnableAsync注解,来开启异步调用,一般还会配置一个线程池,异步的方法交给特定的线程池完成,如下:@Configuration@EnableAsyncpublic class AsyncConfigu原创 2021-06-24 22:55:48 · 441 阅读 · 0 评论 -
Nacos原理简介
简单介绍一下Nacos1.什么是NacosNacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 是Spring Cloud A 中的服务注册发现组件,类似于Consul、Eureka,同时它又提供了分布式配置中心的功能,这点和Consul的config类似,支持热加载2.Nacos原理Nacos注册中心分为server与client,server采用Java编写,为client提供注册发现服务与配置服务原创 2021-05-30 15:52:28 · 3101 阅读 · 0 评论 -
SpringBoot的自动装配原理
SpringBoot的自动装配原理:首先方法入口从:main方法的run方法里面进去,传入当前类的字节码文件然后再里面会调用run方法,方法里面会有1个this.refreshContext(context);可以成为刷新容器方法主要内容:是让去加载当前类上的注解@SpringBootApplication简要阐述里面的类注解包含:1.@SpringBootConfiguration 相当于一个配置类,里面也可以注入bean,(加个@Bean)2.@ComponentScan 包扫面,可扫原创 2021-03-31 22:36:31 · 107 阅读 · 0 评论 -
@SpringBootApplication 注解详情
SpringBoot的解析@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制@ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类。@SpringBootConfiguration:允许在 Spring 上下文中注册额外的 bean 或导入其他配置类1.@SpringBootApplication注解的定义这是个组合注解主要包含:@SpringBoot原创 2021-03-31 22:16:31 · 109 阅读 · 0 评论 -
Spring 如何解决循环依赖问题
Spring的循环依赖;Spring怎么解决循环依赖问题的,首先 Spring是只支持单例的因为如果不支持单例,就不会走生命周期流程,他会在Spring容器初始化的时候就会走bean的生命周期流程,如果是原型,只有在用的时候才回去走bean的生命周期流程1.首先Spring体系中,bean是由BeanDefinition创建的(可以理解为Spring中的一个建模)2.这个时候首先需要先说Spring的Bean的生命周期2.1Spring启动后会扫描把类变成BeanName变成BeanDefini原创 2021-03-31 22:13:40 · 112 阅读 · 0 评论 -
Spring bean的生命周期
Spring bean的生命周期只有四个主要阶段,其他都是在这四个主要阶段前后的扩展点,这四个阶段是:1.实例化 Instantiation2.属性赋值 Populate3.初始化 Initialization4.销毁 Destruction其中实例化和属性赋值分别对应 构造方法和setter方法 的注入,初始化和销毁是用户能自定义扩展的两个阶段。源码层面:主要过程集中于doCreateBean方法中// 忽略了无关代码protected Object doCreateBean(fin原创 2021-03-31 22:08:07 · 69 阅读 · 0 评论