我们这系列文章主要来分析的是关于springmvc的源码为了方便debug我们这里创建一个springmvc的Controller作为调试用HandlerMapping在springmvc中有好几种实现映射器,这里我只分析比较常用到的一个映射器是RequestMappingHandlerMapping。基于springboot,所以我们就按springboot的套路开始,直接从MATA-INF/s
01. 什么是 BeanDefinitionBeanDefinition 表示 Bean 的定义,Spring 根据 BeanDefinition 来创建 Bean 对象,BeanDefinition 有很多的属性用来描述 Bean,BeanDefinition 是 Spring 中的非常核心的概念。BeanDefinition 中重要的属性:beanClass – 表示一个 Bean 的类型,比
读完本篇文章需要很长很长时间。。。。传统JDBC相信大家对传统的jdbc已经很熟悉了,无非就是下面这个流程1 2 3 4 5 6 7 8 9 10 11//1.加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); //2. 获得数据库连接 Connection conn = DriverManager.getConnection(URL, USER, PAS
转载 2024-05-09 15:41:07
33阅读
源代码:主代码  第1步:  第2步:这里会循环两次,第一次refresh=false第二次为true,这里演示第二次的结果,在其中完成了容器的初始化在refresh()函数中的方法操作如下:1、prepareRefresh();容器刷新前的准备,设置上下文状态,获取属性,验证必要的属性等2、ConfigurableListableBeanFactory b
Spring源码分析(一):从哪里开始看spring源码(系列文章基于Spring5.0)一、概述对于大多数第一次看spring源码的人来说,都会感觉不知从哪开始看起,因为spring项目源码由多个子项目组成,如spring-beans,spring-context,spring-core,spring-aop,spring-web,spring-webmvc等,整个项目结构如图:可能有人会觉得,
 流程:经过我们的分析和推断,解析注解@Autowired的时机,其实就是在为bean实例填充属性的时候,会调用AutowiredAnnotationBeanPostProcessor中的方法postProcessProperties,为bean实例解析注解并填充属性信息。我们以方法postProcessProperties为入口,看了下注解@Autowired是如何解析的,其实就是获取
转载 2024-08-15 19:40:12
80阅读
一. 引入已经配置好的源码已经配置好的码云仓库,下载后切换到对应分支即可直接运行 jdk11国内镜像:https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/11/jdk/x64/linux/ spring版本:5.3.4 spring码云地址: https://gitee.com/tangjingshan/Spring-Framework spring
前言:Spring Mvc的设计主要围绕着DispatcherServlet来展开的,直接分析DispatcherServlet即可。个人理解SpringMvc其
原创 2024-01-20 21:46:37
73阅读
由于经常使用spring,并且之前有看过《spring技术内幕》和《spring源码解析》书,决定自己搭建一个spring
转载 2022-06-01 08:53:12
626阅读
流程 12 个方法// Prepare this context for refreshing. prepareRefresh(); // Tell the subclass to refresh the internal bean factory. ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
转载 2024-07-23 22:00:31
31阅读
大家肯定都debugspring源码,看看bean的创建过程,有个缺点不能自己随意的添加注释
原创 2023-07-16 00:01:25
572阅读
在前面我们了解了DocumennationContext的初始化过程,包括一系列的默认属性的赋值,接下来,开始真正的文档解析操作我们的源码分析方式是按照springfox的文档初始化来进行归纳的,所以也是看到哪儿,就写到哪儿,当我们整个过程都研究完后,我会总结一篇文章来统一说明springfox的整个流程说明,或许以图文的方式来配合说明更能加深我们的印象.我们在前面的初始化过程中,springfo
设计模式是解决问题的方案,从大神的代码中学习对设计模式的使用,可以有效提升个人编码及设计代码的能力。本系列博文用于总结阅读过的框架源码Spring系列、Mybatis)及JDK源码中 所使用过的设计模式,并结合个人工作经验,重新理解设计模式。本篇博文主要看一下行为型的几个设计模式,即,策略模式、模板方法模式、迭代器模式、观察者模式 及 责任链模式。策略模式个人理解去年看了蛮多源码,发现 框架的开
1. Debug的使用(1) 什么是DebugDebug是DOS、Windows都提供的实模式(8086 CPU)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容、内存情况和在机器码级跟踪程序的运行。(2) 我们常用的Debug功能★ 用Debug的R命令查看、改变CPU寄存器的内容;★ 用Debug的D命令看内存中的内容;★ 用Debug的E命令改写内存中的内容;★ 用Debug的U命令
文章目录前言一、启动过程二、创建 Bean 容器,加载并注册 Bean三、准备 Bean 容器四、初始化所有的 singleton beans(lazy-init 的除外)总结 前言本文的源码分析部分参考自Spring IOC 容器源码分析最近在看Spring源码,本来想全部看了后写文档总结,但怕后面懒不想写,就准备先写一篇。Spring是很多模块的集合,是一款开源的轻量级 Java 开发框架,
jdk动态代理jdk动态代理代码实现 满足代理模式应用场景的三个必要条件两个角色:执行者、被代理对象注重过程,必须要做,被代理对象没时间做或者不想做(怕羞羞),不专业执行者必须拿到被代理对象的个人资料(执行者持有被代理对象的引用)jdk的动态代理通过调用Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,Inv
一篇文章从源码层面了解spring mvc请求过来后如何是如何执行的!
原创 2022-03-25 14:48:43
410阅读
Spring 容器初始化流程Spring 容器初始化流程大致流程如下:this():注册内
前言通常,我们说的Spring启动,就是构造ApplicationContext对象以及调用refresh()方法的过程。之前已经在本地编译好了spring源码,也新建了一个子模块用来测试,可以断点一步一步的跟代码。Spring IoC容器的加载过程1.实例化化容器:AnnotationConfigApplicationContext从这里出发:(这里使用的时javaconfig注解的方式,因为设
转载 2024-05-31 13:23:26
164阅读
目录1. 基本环境:2. 进入源码2.1 分析this()方法2. register方法        真是万事开头难,一点不假。计划着写一个spring源码分析的系列文章,但是每每提笔又不知道该用什么样的开场白比较合适,很是无奈。实话讲,阅读源码的过程很漫长甚至有点痛苦,但是每次学到些什么又会有莫名的满足,从这篇文章开始,我们一点点一步步来揭开spring
转载 2024-04-19 15:18:36
17阅读
  • 1
  • 2
  • 3
  • 4
  • 5