我们这系列文章主要来分析的是关于springmvc的源码为了方便debug我们这里创建一个springmvc的Controller作为调试用HandlerMapping在springmvc中有好几种实现映射器,这里我只分析比较常用到的一个映射器是RequestMappingHandlerMapping。基于springboot,所以我们就按springboot的套路开始,直接从MATA-INF/s            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-12 14:53:44
                            
                                22阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            01. 什么是 BeanDefinitionBeanDefinition 表示 Bean 的定义,Spring 根据 BeanDefinition 来创建 Bean 对象,BeanDefinition 有很多的属性用来描述 Bean,BeanDefinition 是 Spring 中的非常核心的概念。BeanDefinition 中重要的属性:beanClass – 表示一个 Bean 的类型,比            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-25 14:07:59
                            
                                20阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            读完本篇文章需要很长很长时间。。。。传统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            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 21:41:04
                            
                                33阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring源码分析(一):从哪里开始看spring源码(系列文章基于Spring5.0)一、概述对于大多数第一次看spring源码的人来说,都会感觉不知从哪开始看起,因为spring项目源码由多个子项目组成,如spring-beans,spring-context,spring-core,spring-aop,spring-web,spring-webmvc等,整个项目结构如图:可能有人会觉得,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-21 10:55:33
                            
                                7阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             流程:经过我们的分析和推断,解析注解@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            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-25 00:30:00
                            
                                115阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言: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阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            大家肯定都debug过spring的源码,看看bean的创建过程,有个缺点不能自己随意的添加注释            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-16 00:01:25
                            
                                572阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在前面我们了解了DocumennationContext的初始化过程,包括一系列的默认属性的赋值,接下来,开始真正的文档解析操作我们的源码分析方式是按照springfox的文档初始化来进行归纳的,所以也是看到哪儿,就写到哪儿,当我们整个过程都研究完后,我会总结一篇文章来统一说明springfox的整个流程说明,或许以图文的方式来配合说明更能加深我们的印象.我们在前面的初始化过程中,springfo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-05 09:00:31
                            
                                37阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            设计模式是解决问题的方案,从大神的代码中学习对设计模式的使用,可以有效提升个人编码及设计代码的能力。本系列博文用于总结阅读过的框架源码(Spring系列、Mybatis)及JDK源码中 所使用过的设计模式,并结合个人工作经验,重新理解设计模式。本篇博文主要看一下行为型的几个设计模式,即,策略模式、模板方法模式、迭代器模式、观察者模式 及 责任链模式。策略模式个人理解去年看了蛮多源码,发现 框架的开            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-23 15:13:08
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            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 开发框架,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-07 11:45:00
                            
                                41阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            jdk动态代理jdk动态代理代码实现 满足代理模式应用场景的三个必要条件两个角色:执行者、被代理对象注重过程,必须要做,被代理对象没时间做或者不想做(怕羞羞),不专业执行者必须拿到被代理对象的个人资料(执行者持有被代理对象的引用)jdk的动态代理通过调用Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,Inv            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 10:31:24
                            
                                23阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一篇文章从源码层面了解spring mvc请求过来后如何是如何执行的!            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-03-25 14:48:43
                            
                                410阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring 容器初始化流程Spring 容器初始化流程大致流程如下:this():注册内            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-11-04 11:08:09
                            
                                421阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言通常,我们说的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阅读