- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 【Spring源码开整】06. SpringMVC原理分析
SpringMVC原理分析 1.目标 理解原生servlet与servlet容器 理解SpringMVC的请求处理流程 2.原生servlet 2.1 回顾 首先我们回忆一下在使用诸如Structs2、SpringMVC框架之前我们是如何处理来着B端或是C端的请求的。下面我们用一张图来进行说明。 从Brower来的http请求会有Tomcat、Jetty这样的Servlet容器来接受。比如Tomcat默认监听8080端口,在传输层对请求进行处理是剥离掉TCP头解析出对应端就会把请求端口是80
2020-06-25 23:22:42 111
原创 【Spring源码开整】05. Spring Bean生成
Spring Bean生成 1.目标 自然是来看看spring的bean生成流程的源码 但是这流程就算不关注大量细节,也真的很长,后面考虑把这一篇再拆一拆 2.查找入口 private static void testSpring() { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); Object alice = context.ge
2020-06-01 22:41:59 164
原创 【Spring源码开整】04. Spring BeanDefinition加载
Spring BeanDefinition加载 1. 目标 经过两轮简单的手撕代码,最为核心几个类的作用已经基本解释清楚了。之前一直强调写代码是为了帮助理解,这里我们来看看spring BeanDefinition的加载流程。Bean的加载安排在下一篇。 源码的阅读,老实是去理解设计者的思维。老实说不会是很简单有趣的事情,当时会有收获。spring的源码体现着优秀的设计原则与设计模式。 2. 准备与入口 读源码最好是本地把源码跑起来,网上已经有很多基于各种IDE+gradle把源码跑起来的博客,
2020-05-27 14:41:29 140
原创 【Spring源码开整】03. 手写IOC容器--面向对象拆分
1. 目标 在手写IOC容器–实现功能以面向过程的方式实现了spring IoC容器的基本思路,下面我们以面向对象的思维方式来对该部分的代码进行拆分,进一步模拟spring的IoC实现。 重复强调下自己实现该部分只是为了帮助阅读Spring源码时的理解学习spring的代码结构,不是完整的写一遍Spring,所以仍然只有一些小编理解上的核心逻辑,各位看官也就当个参考就好。 2. Spring IoC中的一些重要接口与类说明 后面的实现会劲量参考着Spring的继承体系来完成以便于在阅读源码时有相
2020-05-22 00:02:24 111
原创 【Spring源码开整】02. 手写IOC容器--实现功能
1. 目标 以面向过程的方式完成基本的IoC容器下一篇基于该实现完成spring基础BeanFactory的改造。下面的代码只会完成最为基础的部分,异常处理多种标签的解析不写入该实现中。 手写IoC是为了帮助理解Spring IoC容器。 2. Spring Xml的封装分析 Spring IoC容器帮助使用者完成了大量的基础工作,是Spring最为核心的部分。下面先来看看一个基本Xml封装 每个标签封装成一个BeanDefinition对象记录类的类型,id,初始化方法,作用域,以及字段
2020-05-18 22:04:57 128
原创 【Spring源码开整】01. Spring概念梳理
Spring源码开整 该系列以手写spring framework中的核心部分帮助理解源码 1. 目标 为什么需要spring 搞清楚spring全家桶常用技术 搞清楚spring框架的主要职责 搞清楚spring框架和springboot的区别 搞清楚spring框架中各模块的作用 搞清楚spring中的核心概念,基础容器、高级容器、ioc容器、ioc、aop、di、bop、循环依 赖等 2. 概念解析 2.1 为什么需要spring Spring是个一站式解决方案,使创建Java企业级应用程序变
2020-05-16 20:11:07 216
原创 2.从spi来开启dubbo的旅程
1. 写在前面: 读dubbo源码之前建议先看看官方文档http://dubbo.apache.org/zh-cn/docs/user/quick-start.html,很少有人能比原作者们写的更好了,只能说是按自己的理解来阐述。 2. spi你想干啥子 编程中我们有一般遵循几大原则比如开闭原则、单一职责、依赖倒置等等。依赖倒置核心思想是:要面向接口编程,不要面向实现编程。 SPI 全...
2020-01-30 17:23:50 136
原创 1.初来乍到dubbo请多关照
1. 写在前面: 读代码就像读书,如同与一群优秀工程师架构师交流。 这一系列都是费曼学习法的学习笔记。 2. 准备: 官方文档http://dubbo.apache.org/zh-cn/docs/user/quick-start.html 环境准备 网上这方面的东西很多,自行百度吧 3. hello word 环境说明:demo基于springboot实现,zookeepe...
2020-01-17 17:02:08 81
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人