自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Java-based的Spring源码解读(十)

上一篇已经分析完了AnnotationConfigApplicationContext构造函数内AnnotatedBeanDefinitionReader的初始化过程。再来回顾下AnnotationConfigApplicationContext构造函数的内容:public AnnotationConfigApplicationContext() { this.reader = new AnnotatedBeanDefinitionReader(this); this.scanner = ne

2020-07-23 01:54:09 111

原创 基于Java-based的Spring源码解读(九)

接着上一篇,上一篇讲到了,调用工具类注册后置处理器,主要做一些初始化工作,如初始化比较器、自动注入解析器及在Spring IOC容器内部与用户无关的一些解析器等。今天分析下面这段代码private static BeanDefinitionHolder registerPostProcessor( BeanDefinitionRegistry registry, RootBeanDefinition definition, String beanName) { definition.s

2020-07-22 02:17:22 146

原创 基于Java-based的Spring源码解读(八)

接着上一篇,上一篇已经分析完了ConditionEvaluator的创建过程。接下来分析AnnotationConfigUtils.registerAnnotationConfigProcessors(this.registry);在AnnotatedBeanDefinitionReader读取器的构造函数内调用工具类,根据给定的registry注册所有注解相关的后置处理器。源码如下:public static Set<BeanDefinitionHolder> regis

2020-07-21 01:56:12 137

原创 基于Java-based的Spring源码解读(七)

经历了前几天晕头转向debug,现在终于找到阅读源码的感觉了,配合时序图阅读主线,不懂的细枝末节先跳过,废话不多说,进入今天的主题昨天分析到AnnotatedBeanDefinitionReader构造函数的初始化,代码如下public AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry, Environment environment) { Assert.notNull(registry, "BeanDefinitionR

2020-07-20 23:33:31 119

原创 基于Java-based的Spring源码解读(六)

接下来分析下AnnotatedBeanDefinitionReader的执行过程,即下面这段代码public AnnotationConfigApplicationContext() { this.reader = new AnnotatedBeanDefinitionReader(this); this.scanner = new ClassPathBeanDefinitionScanner(this);}时序图如下:获取Environment的逻辑如下:/** *

2020-07-20 01:09:46 134

原创 基于Java-based的Spring源码解读(五)

接着上一篇Spring源码解读(三)前两天实在读晕了,借鉴了郝佳的《Spring源码深度解读》的思路,配合UML类图、时序图等手段,帮助我们理解。容器时序图如下:时序图从AppConfigTest测试类开始,从时序图我们可以一目了然的看出ApplicationContext容器执行的处理逻辑。首先在测试类创建AnnotationConfigApplicationContext实例,并调用自身的构造函数,在该构造函数内分别实例化AnnotatedBeanDefinitionReader、Class

2020-07-19 23:59:23 134

原创 基于Java-based的Spring源码解读(四)

万事开头难,也许对像我这样阶段的coder,阅读Spring源码难度稍显大了一点,源码绕来绕去,很难从思想层面去理解Spring源码,这段代码为什么这么写。或许应该换一种思路,要是我来写应该怎么实现,跟大师的实现对比一下,也许可以帮助理解源码。今天先写一下心得。源码层面还没想好应该怎么写。...

2020-07-19 01:41:14 111

原创 基于Java-based的Spring源码解读(三)

说心里话,不读不知道,一读吓一跳,今天真是被绕晕了,真是山路十八弯,读源码真是一定要有个好的方法,最好配着UML工具,边读边做记录,不然真像我似的被绕晕。ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);今天从这一行代码入手。我们知道new对象的时候会经过类的加载及初始化。先初始化AbstractApplicationContext,再初始化GenericApplicatio

2020-07-17 00:58:28 122

原创 基于Java-based的Spring源码解读(二)

上一篇文章介绍到了AnnotationConfigApplicationContext的类图,今天来分析下每个接口的功能及Spring构建该类图的一些思想及设计原则BeanFactory:Spring Bean容器的顶级接口,定义了获取Bean、判断是否单例、获取类型、获取别名等与Bean及其属性相关的方法。因此功能主要是获取Bean及其属性 MessageSource:用于解析消息的策略接口,支持此类消息的参数化和国际化。从给定的消息源解析并获取消息 ListableBeanFactory:Bea

2020-07-16 01:31:36 125

原创 基于Java-based配置Spring源码解读(一)

经过前几天的准备终于可以进入源码了Spring配置有三种方式:XML配置 注解配置 Java-based配置Spring5后推荐我们使用Java-based配置的方式,因此本篇文章以Java-based配置为切入点开始源码的阅读有对Java-based配置不了解的小伙伴,可以参考官方文档好了,废话少说让我们进入正题首先右键Spring工程创建基于Gradle的module,如下图接着在创建好的工程创建Java配置package stu.sp...

2020-07-15 03:03:31 209

原创 Spring源码 环境搭建

Spring已经由之前额SVN迁移到了GitHub,而且也改为基于Gradle构建项目,所以是构建Spring源码环境首先要安装Gradle。Gradle环境搭建步骤 进入Gradle官网,点击Install Gradle 向下拖到滚动条,进入到下面的画面,选择complete,也可以选择Binary-only下载完成后,解压到指定目录,如D:\program files\gradle-6.5.1 配置环境变量,并将%GRADLE_HOME%\bin添加到Path验证,win

2020-07-14 00:57:17 479

原创 Spring思想

文章题目之所以叫Spring思想,是想强调下学习Spring的过程中,除了掌握Spring的整体架构、深入重要细节的同时,也要注意学习Spring的哲学,就像Spring官网上介绍的Design Philosophy:Provide choice at every level Accommodate diverse perspectives Care about API design Set high standards for code qualitySpring之所以历久弥新,跟它的设计哲.

2020-07-13 00:28:35 376

原创 兴奋的起点

打开昨晚两点多写完发表的博文,没想到有十个观看,另外还收获到了一个关注。谢谢每一位观看的朋友,特别感谢那位点了关注的大佬。现在真的很兴奋,原本只是想找个地方记录自己学习的点点滴滴,给自己的梦想一个脚步,坚持走下去。现在又有了不一样的感受,感觉分享是这么一件令人快乐的事情,比当初的初恋还让人兴奋。同时也感受到了一种责任,我要对观看我的文章的人负责,要写出好的文章,让大家观看。然而我现在技术上还处在学习的阶段,也请大家阅读的时候多思考,大家一起共勉。接下来将分享spring源码系列,谢谢大家的关注。

2020-07-12 14:45:24 774

原创 入坑两年心路记载

第一次发博文,先简单的自我介绍下,本人09年本科毕业,山东人。如果单纯的从年龄上看,在IT行业已经算是个老人了,然而实际上才刚行两年。每天面对着那些年轻的小伙子,他们的朝气蓬勃,时刻也在激励着我,生活就应该向这些小伙子一样充满激情,然而在你想着美好的事情的时候,现实总会无情的给你一巴掌,网络充斥着IT年龄论的文章,让我这样大龄的IT人诚惶诚恐忐忑不安,我该沿着现在的路线走下去吗?也许很多人都会面临我今天这样的选择。当我们面临选择的时候应该怎么做,是继续迷茫下去,还是坚持心中的梦想,亦或者另谋出路。对

2020-07-12 02:23:04 1686 4

空空如也

空空如也

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

TA关注的人

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