spring相关那些事儿
1、spring的核心IOC和AOP的实现原理
2、spring源码模块解读
3、spring设计理念的应用
a little daily
人生天地之间,若白驹过隙,忽然而已,每个人都希望留下自己的足迹。
展开
-
1、如何去了解Spring Framework
1、整理几个学习spring的视频教程:布丁狼《Java 大神之路(第八季 Spring5)》一共有 57P 。声音有点小… 尚硅谷《Spring4 视频教程》一共有 36P 。 传智播客《Spring3 框架》一共有 87P 。 moocer《Spring 入门篇》一共 7 小时,侧重 Spring IoC 和 AOP 。 apollo_0001《探秘 Spring...原创 2020-01-31 18:33:30 · 201 阅读 · 0 评论 -
1.1、精尽 Spring 源码分析 —— 调试环境搭建(转译)
1. 依赖工具Gradle Git JDK1.8+ IntelliJ IDEA笔者目前使用的系统版本是 macOS Mojave 10.14 。所以,如果胖友是 Windows 环境,胖到一些问题,请在星球给我留言。懵逼的艿艿:根据现在收到的信息,貌似主要是 Windows 环境会搭建失败。如果胖友真的搭建不起来,建议可以先新建一个项目,搭建一个 Spring Demo 来调试。...原创 2020-01-30 19:26:34 · 705 阅读 · 0 评论 -
2、【死磕 Spring】——IoC之深入理解Spring IoC
本文主要基于 Spring 5.0.6.RELEASE摘要: 原创出处http://cmsblogs.com/?p=2652「小明哥」,谢谢!在一开始学习 Spring 的时候,我们就接触 IoC 了,作为 Spring 第一个最核心的概念,我们在解读它源码之前势必需要对其有深入的认识,本篇为【死磕 Spring】系列博客的第一篇博文,主要介绍 IoC 基本概念和各个组件。1. I...原创 2018-12-24 15:39:34 · 2669 阅读 · 0 评论 -
3、【死磕 Spring】—— IoC 之 Spring 统一资源加载策略(转译)
在学 Java SE 的时候,我们学习了一个标准类java.net.URL,该类在 Java SE 中的定位为统一资源定位器(Uniform Resource Locator),但是我们知道它的实现基本只限于网络形式发布的资源的查找和定位。然而,实际上资源的定义比较广泛,除了网络形式的资源,还有以二进制形式存在的、以文件形式存在的、以字节流形式存在的等等。而且它可以存在于任何场所,比如网络、文件...原创 2020-01-30 19:23:09 · 214 阅读 · 0 评论 -
4、【死磕 Spring】—— IoC 之加载 BeanDefinition(转译)
先看一段熟悉的代码: ClassPathResource resource = new ClassPathResource("bean.xml"); // <1>DefaultListableBeanFactory factory = new DefaultListableBeanFactory(); // <2>XmlBeanDefinitionReade...原创 2020-01-31 18:25:40 · 180 阅读 · 0 评论 -
5、【死磕 Spring】—— IoC 之获取验证模型(转译)
在上篇博客【死磕 Spring】—— IoC 之加载 Definitions中提到,在核心逻辑方法#doLoadBeanDefinitions(InputSource inputSource, Resource resource)方法中,中主要是做三件事情:调用#getValidationModeForResource(Resource resource)方法,获取指定资源(xml)...原创 2020-01-31 18:27:21 · 188 阅读 · 0 评论 -
6、【死磕 Spring】—— IoC 之获取 Document 对象(转译)
在XmlBeanDefinitionReader#doLoadDocument(InputSource inputSource, Resource resource)方法,中做了两件事情:调用#getValidationModeForResource(Resource resource)方法,获取指定资源(xml)的验证模式。 上篇博客,我们已经详细解析。 调用Docume...原创 2020-01-31 18:29:51 · 232 阅读 · 0 评论 -
7、【死磕 Spring】—— IoC 之注册 BeanDefinitions(转译)
获取 XML Document 对象后,会根据该对象和 Resource 资源对象调用XmlBeanDefinitionReader#registerBeanDefinitions(Document doc, Resource resource)方法,开始注册 BeanDefinitions 之旅。代码如下: // AbstractBeanDefinitionReader.java...原创 2020-01-31 18:30:57 · 225 阅读 · 0 评论 -
8、【死磕 Spring】—— IoC 之解析Bean:解析 import 标签(转译)
在博客【死磕 Spring】—— IoC 之注册 BeanDefinitions中分析到,Spring 中有两种解析 Bean 的方式:如果根节点或者子节点采用默认命名空间的话,则调用#parseDefaultElement(...)方法,进行默认标签解析 否则,调用BeanDefinitionParserDelegate#parseCustomElement(...)方法,进行...原创 2020-01-31 18:31:36 · 206 阅读 · 0 评论 -
9、【死磕 Spring】—— IoC 之解析 <bean> 标签:开启解析进程(转译)
import标签解析完毕了,我们一起来看看 Spring 中最复杂也是最重要的标签bean标签的解析过程。1. processBeanDefinition在方法#parseDefaultElement(...)方法中,如果遇到标签为bean时,则调用#processBeanDefinition(Element ele, BeanDefinitionParserDelegat...原创 2020-01-31 18:32:19 · 158 阅读 · 0 评论 -
10、【死磕 Spring】—— IoC 之解析 <bean> 标签:BeanDefinition(转译)
前面历经千辛万苦终于到达解析bean标签步骤来了,解析 bean 标签的过程其实就是构造一个 BeanDefinition 对象的过程。<bean>元素标签拥有的配置属性,BeanDefinition 均提供了相应的属性,与之一一对应。所以,我们有必要对 BeanDefinition先有一个整体的认识。1. BeanDefinitionorg.springframewo...原创 2020-01-31 18:32:57 · 134 阅读 · 0 评论 -
11、【死磕 Spring】—— IoC 之解析 <bean> 标签:meta、lookup-method、replace-method(转译)
在上篇博客【死磕 Spring】—— IoC 之解析标签:BeanDefinition中,已经完成了对<bean>标签属性的解析工作。这篇博文开始,分析子元素的解析。完成bean标签的基本属性解析后,会依次调用 BeanDefinitionParserDelegate 的#parseMetaElements(lement ele, BeanMetadataAttri...原创 2020-01-31 18:25:13 · 218 阅读 · 0 评论 -
12、【死磕 Spring】—— IoC 之解析 <bean> 标签:constructor-arg、property、qualifier(转译)
上篇博客《【死磕 Spring】—— IoC 之解析标签:meta、lookup-method、replace-method》分析了meta、lookup-method、replace-method三个子元素。这篇博客,我们来分析constructor-arg、property、<qualifier>三个子元素。1. constructor-arg 子元素1.1 ...原创 2020-01-30 19:29:51 · 318 阅读 · 0 评论 -
13、【死磕 Spring】—— IoC 之解析 <bean> 标签:解析自定义标签(转译)
前面四篇文章都是分析 Bean 默认标签的解析过程,包括基本属性、六个子元素(meta、lookup-method、replaced-method、constructor-arg、property、qualifier),涉及内容较多,拆分成了四篇文章,导致我们已经忘记从哪里出发的了。所以,我们先来回顾下。DefaultBeanDefinitionDocumentReader 的#proc...原创 2020-01-30 19:29:01 · 180 阅读 · 0 评论 -
14、【死磕 Spring】—— IoC 之解析自定义标签(转译)
在分析自定义标签的解析之前,我们有必要了解自定义标签的使用。1. 使用自定义标签扩展 Spring 自定义标签配置一般需要以下几个步骤:创建一个需要扩展的组件。 定义一个 XSD 文件,用于描述组件内容。 创建一个实现org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser接口的类,用来解析...原创 2020-01-30 19:28:11 · 270 阅读 · 0 评论 -
16、【死磕 Spring】—— IoC 之装载 BeanDefinitions 总结(转)
前面 13 篇博文从源码层次,分析了 IoC BeanDefinition 装载的整个过程,这篇就这些内容做一个总结将其连贯起来。在前文提过,IoC 容器的初始化过程分为三步骤:Resource 定位、BeanDefinition 的载入和解析,BeanDefinition 注册。Resource 定位。我们一般用外部资源来描述 Bean 对象,所以在初始化 IoC 容器的第一步就是需...原创 2020-01-30 19:25:04 · 151 阅读 · 0 评论 -
15、【死磕 Spring】—— IoC 之注册解析的 BeanDefinitions(转)
DefaultBeanDefinitionDocumentReader 的 #processBeanDefinition()方法,完成 Bean 标签解析的核心工作。代码如下: // DefaultBeanDefinitionDocumentReader.javaprotected void processBeanDefinition(Element ele, BeanDefi...原创 2020-01-30 19:26:05 · 132 阅读 · 0 评论 -
17、【死磕 Spring】——IoC之开启Bean的加载(转译)
Spring IoC容器所起的作用如上图所示,它会以某种方式加载Configuration Metadata,将其解析注册到容器内部,然后会根据这些信息绑定整个系统的对象,最终组装成一个可用的基于轻量级容器的应用系统。Spring在实现上述功能中,将整个流程分为两个阶段:容器初始化阶段和加载bean阶段。分别如下:1、容器初始化阶段:首先,通过某种方式加载Configuration...原创 2020-01-30 19:20:58 · 233 阅读 · 0 评论 -
SpringAOP系列-1、核心标签注解使用&代理创建流程
当我们聊Spring AOP(Aspect Oriented Programming)这个面向方面编程的时候,我们应该考虑哪些问题?AOP的存在是为了帮助spring解决什么问题?(OOP面向对象编程要想引入一个公共行为时,需要维护大量的继承关系or编写很多重复代码,so...) Spring 提供了哪些AOP的配置、AspectJ注解?(xml和注解,注解包括:@Aspect注解标注POJ...原创 2020-03-29 22:11:07 · 273 阅读 · 0 评论