自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Kafka环境搭建

1、JDK的安装与配置。下载安装包:jdk-8u144-linux-x64.tar.gz解压:tar -zxvf jdk-8u144-linux-x64.tar.gzpwd获取当前解压的文件路径:/root/software/jdk1.8.0_144配置JDK的环境变量。修改/etc/profile文件并向其中添加如下配置:export JAVA_HOME=/root/software/jdk1.8.0_144export PATH=$PATH:$JAVA_HOME/binexport

2021-04-09 16:49:01 67

原创 分布式锁的实现的区别

对于 Redis 的分布式锁而言,它有以下缺点:它获取锁的方式简单粗暴,获取不到锁直接不断尝试获取锁,比较消耗性能。另外来说的话,Redis 的设计定位决定了它的数据并不是强一致性的,在某些极端情况下,可能会出现问题。锁的模型不够健壮。即便使用 Redlock 算法来实现,在某些复杂场景下,也无法保证其实现 100% 没有问题,关于 Redlock 的讨论可以看 How to do distributed locking。Redis 分布式锁,其实需要自己不断去尝试获取锁,比较消耗性能。但是另一方

2021-03-10 20:41:36 83

原创 快慢指针判断单链表是否有环证明问题。

1.判断单链表是否有环:使用快慢指针fast和slow,fast每次走两步,slow每次走一步,如果有环,肯定会相遇,如果没有,则指针fast遇到NULL退出。追及相遇问题。2.求有环单链表的环长在环上相遇后,记录第一次相遇点为Pos,之后指针slow继续每次走1步,fast每次走2步。在下次相遇的时候fast比slow正好又多走了一圈,也就是多走的距离等于环长。设从第一次相遇到第二次相遇,设slow走了len步,则fast走了2*len步,相遇时多走了一圈:环长=2*len-len3.求有

2021-03-08 16:40:28 367

原创 SpringIOC的启动流程

因为现在都是注解驱动,当我们使用**AnnotationConfigApplicationContext(**Class<?>… annotatedClasses)创建一个spring容器的时候,①他首先会去调用自己的无参构造方法,先调用父类的无参构造方法生成一个IOC容器,然后在自己的无参构造方法中创建了一个读取注解的bean定义(beanDefinition)读取器,创建一个扫描器,可以用来扫描包或者类,继而转化为beanDefinition。这里的扫描器(这里的scanner仅仅是为了程

2020-12-19 10:11:49 351

原创 AOP实现逻辑1

①在aop注解中@EnableAspectJAutoProxy,会通过@import向spring容器注册一个配置类,在配置类中想容器注入了一个AspectJAnnotationAutoProxyCreator这个类,这个是aop的核心,这个类实现了实现了BeanPostProcessor后置处理器,还实现了InstantiationAwareBeanPostProcessor,在Bean初始化完成前后做事情。还实现了BeanFactoryAware接口,做了两件事:1.把Beanfactory保存到Ann

2020-12-18 21:33:14 81 1

原创 AOP的实现逻辑

①在aop注解中@EnableAspectJAutoProxy,会通过@import向spring容器注册一个配置类,在配置类中想容器注入了一个AspectJAnnotationAutoProxyCreator这个类,这个是aop的核心,这个类实现了实现了BeanPostProcessor后置处理器,在Bean初始化完成前后做事情。还实现了BeanFactoryAware接口,做了两件事:1.把Beanfactory保存到AnnotationAwareAspectJAutoProxyCreator 组件上.

2020-12-18 17:31:46 195 2

原创 AOP一次请求调用全流程

①在aop注解中@EnableAspectJAutoProxy,会通过@import向spring容器注册一个配置类,在配置类中想容器注入了一个AspectJAnnotationAutoProxyCreator这个类,这个是aop的核心,这个类实现了实现了BeanPostProcessor后置处理器,在Bean初始化完成前后做事情。还实现了BeanFactoryAware接口,做了两件事:1.把Beanfactory保存到AnnotationAwareAspectJAutoProxyCreator 组件上

2020-12-18 16:25:48 194 1

原创 populateBean()属性注入逻辑

1.InstantiationAwareBeanPostProcessors处理器的postProcessAfterInstantiation函数的应用,此函数可以控制程序是否继续进行属性填充2.根据注入类型,提取依赖的bean,有两种注入方式,根据类型注入,根据Name注入,并统一存入PropertyValues中。3.应用InstantiationAwareBeanPostProcessors处理器的postProcessPropertyValues方法,对属性获取完毕填充前对属性的再次处理4.将

2020-12-18 15:16:28 268

原创 getBean()的执行逻辑

在getBean中调用doGetBean(),在doGetBean中首先通过name获取beanName,因为name 可能会以 & 字符开头,表明调用者想获取 FactoryBean 本身在 BeanFactory 中,FactoryBean 的实现类和其他的 bean 存储方式是一致的,即 beanName 中是没有 & 这个字符的。所以我们需要将 name 的首字符 & 移除,这样才能从缓存里取到 FactoryBean 实例,然后调用**getSingleton(beanN

2020-12-17 19:44:19 229

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除