1. 为什么要学习Spring?
核心模块-core
- JavaEE中,为了解决复杂的业务对象之间的依赖问题,Spring将IoC(Inversion of Control)思想进行了落地,提供了
Spring IoC Container
. - 提供了面向切面编程框架-
Spring AOP
,对OOP
进行补充.
不仅如此,Spring还提供了:
- 应用程序中的资源访问体系-
Resources
. - 事件监听器模式支持-
Events
. - 国际化-
i18n
. - 校验器-
Validation
. - Spring的EL表达式-
SpEL
.
...
可以说,Spring基本提供了JavaEE所需要的基本框架,更加详细的介绍可以访问Spring官网.
Spring让编写JavaEE程序变得更加简单.
Spring提供了一系列关于Java Web的解决方案
- Servlet API-
Spring Web MVC
. - 安全-
Spring Security
. - 数据层访问-
Spring Data
. - 云原生支持-
Spring Cloud
. - 消息队列-
Spring AMQP
. - 响应式编程-
Spring WebFlux
- 自动化装配-
Spring Boot
.
要学习上面的知识,你需要学好Spring.
2. 博客源码解读计划
我是一个Java开发工程师,目前正在使用Spring开发Java应用程序.本博客会分享Spring系列相关的一些知识.为了让读者更好地按序阅读文章,此文章作为目录来帮你检索到具体的文章地址.
以下是我发布的文章,以后的更新我也会将链接放置到下面的链接中.
如果觉得文章不错,希望你给予点赞支持.感激不尽.
关于平台的说明
链接前缀代表博客平台:
例如:
jianshu-简书.
juejin-掘金.
平台间的内容几乎一致.
2.1 Spring IoC
2.1.1 Spring IoC编程思想
-
浅谈IOC编程思想
jianshu:浅谈IOC编程思想
2.1.2 下载源码以及编译
-
Spring源码(一)实例化容器的两种方式
jianshu:Spring源码(一)实例化容器的两种方式
2.1.3 Bean的定义-BeanDefiniton
-
Bean与BeanDefinition
jianshu:Bean与BeanDefinition
juejin:Bean的定义-BeanDefinition -
了解Spring的BeanDefinition体系
jianshu:RootBeanDefinition、GenericBeanDefinition、ChildBeanDefinition
juejin:了解Spring的BeanDefinition体系
2.1.4 Spring容器
-
Spring中的内部容器-BeanFactory
jianshu:浅谈BeanFactory
juejin:Spring中的内部容器-BeanFactory -
Spring容器-ApplicationContext
jianshu:浅谈ApplicationContext
juejin:Spring容器-ApplicationContext -
Aware接口是什么?
jianshu:Spring的Aware接口-装配
juejin:Spring的Aware接口-装配 -
后置处理器-PostProcessor
jianshu:Spring的PostProcessor-后置处理器
juejin:Spring的PostProcessor-后置处理器 -
Spring中的事件-Events
jianshu:详解Spring中的事件监听器模式
juejin:Spring中的事件监听器模式
2.1.5 资源定位与加载
-
Spring的Resources体系
jianshu:浅谈Spring的Resources体系
juejin:Spring的Resources体系 -
Spring如何定位加载BeanDefinition-BeanDefinitionReader
XML:
jianshu:BeanDefinitionReader-将xml解析到BeanDefinition的执行者
juejin:BeanDefinitionReader-将xml解析到BeanDefinition的执行者
注解:
jianshu:基于注解的AnnotationConfigApplicationContext组件扫描过程
juejin:Spring基于注解容器组件扫描过程 -
注册BeanDefinition-BeanDefinitionRegistry
jianshu:BeanDefinitionRegistry-BeanDefinition注册
juejin:BeanDefinitionRegistry-BeanDefinition注册
2.1.6 refresh
-
容器刷新时发生了什么?
jianshu:容器上下文的refresh概述.
juejin:容器上下文的refresh概述.
2.1.7 依赖注入-DI
-
依赖注入的总体流程
jianshu:DI-Spring的依赖注入浅析
juejin:Spring的依赖注入浅析-DI -
Spring的getBean路线-doGetBean
jianshu:Spring的getBean路线-doGetBean
juejin:Spring的getBean路线-doGetBean -
Spring的getBean路线-createBean
jianshu:Spring的getBean路线-createBean
juejin:Spring的getBean路线-createBean -
Spring的getBean路线-doCreateBean
jianshu:Spring的getBean路线-doCreateBean
juejin:Spring的getBean路线-doCreateBean -
Spring是如何做Bean属性填充的(@Autowired原理解析)-populateBean
jianshu:Spring是如何做Bean属性填充的-populateBean
juejin:Spring是如何做Bean属性填充的(@Autowired原理解析)-populateBean -
影响Spring Bean生命周期的BeanPostProcessor
jianshu:影响Spring Bean生命周期的BeanPostProcessor
juejin:影响Spring Bean生命周期的BeanPostProcessor
2.2 Spring AOP
2.2.1 AOP源码前置-概念与基本原理
-
Spring AOP是什么?怎么用?
jianshu:Spring AOP基本概念介绍与入门
juejin:Spring AOP基本概念介绍与入门 -
Spring实现AOP代理的原理是什么?
jianshu:Spring AOP代理原理-JDK动态代理和CGLIB代理
juejin:Spring AOP代理原理-JDK动态代理和CGLIB代理
2.2.2 剖析Spring AOP源码
-
@EnableAspectJAutoProxy原理解析
jianshu:@EnableAspectJAutoProxy原理解析
juejin:@EnableAspectJAutoProxy原理解析 -
AnnotationAwareAspectJAutoProxyCreator-@AspectJ的解析器
jianshu:AnnotationAwareAspectJAutoProxyCreator-@AspectJ的解析器
juejin:AnnotationAwareAspectJAutoProxyCreator-@AspectJ的解析器 -
Spring AOP如何匹配合适的Advisor-getAdvicesAndAdvisorsForBean
jianshu:AOP如何匹配合适的Advisor-getAdvicesAndAdvisorsForBean
juejin:AOP如何匹配合适的Advisor-getAdvicesAndAdvisorsForBean -
Spring AOP创建动态代理的过程
jianshu:Spring AOP创建动态代理的过程
juejin:Spring AOP创建动态代理的过程
2.2.3 剖析Spring MVC源码
-
Spring MVC与Servlet标准及总体设计思想
jianshu:Spring MVC与Servlet标准及总体设计思想
juejin:Spring MVC与Servlet标准及总体设计思想 -
HandlerMapping的初始化
jianshu:HandlerMapping的初始化 -
Spring MVC是如何处理请求的
jianshu:Spring MVC是如何处理请求的