![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SPRING栈源码解析
老周(重庆)
一个撸了10年代码的老鸟
展开
-
SpringBoot源码解析之一:写一个自己的SpringBoot起步依赖
如何手写一个自己的SpringBoot起步依赖在使用springboot做脚手架开发时,springboot为我们提供了极大的便利,特别是jar包的版本和各种组件的自动配置。本章节就来研究下Springboot中组件自动配置的原理,以及如何去实现一个自己的SpringBoot组件给别人使用。SpringBoot自动配置基础SpringBoot自动配置中,会用到两个核心的基础注解,@Impor...原创 2020-03-12 13:59:12 · 1281 阅读 · 1 评论 -
SpringMVC框架源码解析之三:手写一个简单的MVC框架
SpringMVC框架源码解析之三:手写一个简单的MVC框架为了加上对SpringMVC的理解,本文通过手写一个简单的MVC框架,来直观的理解MVC的原理。如下为MVC框架要支持的功能:源码位于:https://gitee.com/cq-laozhou/spring-stack-source-code-analysis/tree/master/src/main/java/com/zyy/s...原创 2020-01-14 22:51:28 · 302 阅读 · 0 评论 -
SpringMVC源码解析之二:一次请求的完整旅行源码分析
SpringMVC源码解析之二:一次请求的完整旅行源码分析一次客户请求在SpringMVC框架中,所经历的完整执行流程分析。DispatcherServlet的初始化源码分析在SpringMVC中,所有请求都要通过前端控制器DispatcherServlet来进行处理,因为它是一个servlet了,其生命周期当然也由servlet容器(如tomcat)来管理。在它提供服务之前,必须先初始化。...原创 2020-01-13 23:32:37 · 179 阅读 · 0 评论 -
SpringMVC框架源码解析之一:核心组件和执行流程
SpringMVC框架源码解析之一:核心组件和执行流程SpringMVC框架这几年可以说是java语言中最热门的MVC框架了。在前后端分离的时代,就算不使用它来处理前端页面,但也是用它来提供Restful API。Servlet的生命周期在开始了解SpringMVC框架之前,先来了解下servlet生命周期:public interface Servlet { //应用容器(...原创 2020-01-09 16:20:19 · 324 阅读 · 0 评论 -
Spring框架事务核心源码解析
详细分析了Spring事务管理的源码,包括7种传播特性在存在事务和不存在事务情况下的处理逻辑,顺带着也把AOP的核心源码也一起分析了。@EnableTransactionManagement注解分析事务代理对象的创建AOP代理对象的创建类似,要启动事务管理,需要在配置类上使用@EnableTransactionManagement注解,来看看这个注解做了些什么事情:@Import(Trans...原创 2019-12-20 00:12:23 · 301 阅读 · 0 评论 -
Spring框架AOP核心源码解析之二:代理对象的调用
阅读文章时,看看流程图会更容易理解哦: https://www.processon.com/view/link/5df5e143e4b004cc9a3068d2JDK动态代理调用接上一篇文章,创建好代理对象后,从容器中getBean返回的就是代理对象了。此时调用代理对象的方法,就会被拦截增强,以JdkDynamicAopProxy这个创建的代理对象为例,调用代理对象的方法会进入到JdkDyna...原创 2019-12-15 17:33:41 · 201 阅读 · 0 评论 -
Spring框架AOP核心源码解析之一:代理对象的创建
阅读文章时,看看流程图会更容易理解哦:https://www.processon.com/view/link/5df5e143e4b004cc9a3068d2示例准备在分析aop源码之前,先搭建一个demo示例,演示下效果。比如,有一个DemoService接口,里面定义一个demo方法:public interface DemoService { void demo(Stri...原创 2019-12-15 17:32:04 · 243 阅读 · 0 评论 -
Spring框架IOC容器初始化核心源码解析之五:单例Bean循环依赖解决和自动注入机制
填充属性结合spring源码和 https://www.processon.com/view/link/5dec9a96e4b0c080dba0305b 上总结的流程图一起看,效果会更好。书接上篇,继续分析populateBean(beanName, mbd, instanceWrapper);这个方法。protected void populateBean(String beanName,...原创 2019-12-11 00:08:46 · 227 阅读 · 0 评论 -
Spring框架IOC容器初始化核心源码解析之四:Bean初始化(getBean)
单例bean的初始化入口先回顾下refresh方法:public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prepareRef...原创 2019-12-08 23:07:17 · 389 阅读 · 1 评论 -
Spring框架IOC容器初始化核心源码解析之三:BeanDefinition注册
详细分析了spring是如何找到并解析配置类,如果将通过@ComponentScan 和 @Component 、@Bean 以及 @Import 注解声明的bean,自动注册的容器中的。用于debug的源码:https://gitee.com/cq-laozhou/spring-stack-source-code-analysisinvokeBeanFactoryPostProcessors...原创 2019-12-08 00:45:32 · 664 阅读 · 0 评论 -
Spring框架IOC容器初始化核心源码解析之二:准备工作
Bean定义的几种方式spring提供了3种声明bean的方式:在配置类中(@Configuration注解的类)使用@bean注解声明bean;使用@ComponentScan注解,默认它会扫描指定路径中的带有@Component注解及其子注解(@Controller @Service @Repository)的类,并将它们注册为bean使用@Import注解 其value可以配置三种...原创 2019-12-07 00:13:17 · 179 阅读 · 1 评论 -
Spring框架IOC容器初始化核心源码解析之一:基础概念
在开始分析spring框架源码之前,需要先了解spring的几个核心的组件,其中在启动过程中最重要的就是BeanDefinitionRegisterPostProcessor、BeanFactoryPostProcessor、BeanPostProcessor组件。源代码地址 https://gitee.com/cq-laozhou/spring-stack-source-code-analys...原创 2019-12-07 00:09:06 · 192 阅读 · 0 评论 -
Spring框架核心注解用例
示例的源码地址:https://gitee.com/cq-laozhou/spring-stack-source-code-analysis@Configuration 和 @Bean回忆下,在古老的Spring框架版本中(Spring3之前),spring的所有配置都是通过xml文件来配置,比如:在 applicationContext.xml文件中定义一个bean:<?xml ...原创 2019-12-05 11:02:34 · 325 阅读 · 1 评论