在V1 版本上进了优化,采用了常用的设计模式(工厂模式、单例模式、委派模式、策略模式),将init()方法中的代码进行封装。按照之前的实现思路,先搭基础框架,再填肉注血,具体代码如下://初始化阶段
@Override
public void init(ServletConfig config) throws ServletException {
	//1、加载配置文件
	doLoadConfi            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-30 16:10:27
                            
                                48阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            严格来说,容器的初始化过程主要包括BeanDefinition的Resource定位BeanDefinition的载入和解析BeanDefinition在容器中的注册在初始化的过程当中,我们会看到一个又一个的方法被调用,换句话说,其实是通过调用一些方法来完成IoC容器初始化的.refresh()方法,其实标志容器初始化过程的正式启动.Spring之所以把这三个基本过程分开,并使用不同模块 如使用相            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-09 14:00:56
                            
                                34阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring创建和初始化的源码流程分析1. Spring容器的refresh()===>创建和刷新容器1.prepareRefresh():刷新前的预处理工作1.1 initPropertySources() :初始化一些属性设置1.2 getEnvironment().validateRequiredProperties():检验属性的合法等1.3 保存早期的监听器和事件2. this.            
                
         
            
            
            
             上图是我看spring容器初始化源码的思维导图,转载YurBatman大神的总结, 写的很好,要多读好几遍。1、prepareRefresh()刷新前的预处理;     0)、this.closed.set(false),this.active.set(true)  设置一些标记位     1)、initP            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-28 19:51:48
                            
                                75阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、Spring 容器高层视图
Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配号Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。
二、内部工作机制
该图描述了Spring容器从加载配置文件到创建出一个完整Bean的作业流程:
1、ResourceLoader从存储介质中加载Spri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2014-06-17 09:14:00
                            
                                222阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            IOC容器的初始化分为三个过程实现:第一个过程是Resource资源定位。这个Resouce指的是BeanDefinition的资源定位。这个过程就是容器找数据的过程,就像水桶装水需要先找到水一样。第二个过程是BeanDefinition的载入过程。这个载入过程是把用户定义好的Bean表示成Ioc容器内部的数据结构,而这个容器内部的数据结构就是BeanDefition。第三个过程是向IOC容器注册            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-15 12:15:45
                            
                                42阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录记录 spring容器初始化过程1. new AnnotationConfigApplicationContext () 构造方法1.1 AnnotatedBeanDefinitionReader 读取器实例1.2 ClassPathBeanDefinitionScanner扫描器初始化2. ac.register(AppConfig.class) 方法 记录 spring容器初始化过程            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-29 06:48:43
                            
                                27阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            博客概要       本篇只是结合编程式使用DefaultListableBeanFactory的代码,简单得描述了一下IOC容器初始化的过程,分为3个步骤:Resource定位,载入BeanDefinition,注册这些Bean 。以及Spring中初始化的过程和依赖注入的过程是分开的,只有在对bean设置过lazy-init的情况下可能会使依赖注入在容器            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 06:09:43
                            
                                37阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录1、理解IOC/DI/DL1.1、IOC -(Inversion Of Control)1.2、DL-(Dependency looking )1.3、DI-(Dependency injection )2、Spring容器启动流程3、Spring容器启动源码分析4、小结前言 
    Spring的出现就是为了更好的管理Bean,而IOC/DI/DL又是Spirng的核心            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-21 11:11:51
                            
                                49阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            上次说到spring IOC 过程中的几个重要接口: Resource, BeanDefinition, BeanDefinitionRender ,BeanFactory, ApplicationContext 简单说了spring 的bean初始化流程:由 Resource接口的具体实现定位,读取资源文件。交给BeanfinintionRender进行bean的解析解析得到            
                
         
            
            
            
            一、Spring 容器高层视图 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配号Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。二、内部工作机制该图描述了Spring容器从加载配置文件到创建出一个完整Bean的作业流程:1、ResourceLoader从存储介质中加载Spri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-22 10:50:11
                            
                                85阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录IoC容器的初始化过程注意1、BeanDefinition的Resource定位注意AbstractRefreshableApplicationContext的refreshBeanFactory方法实现2、BeanDefinition的载入和解析3、BeanDefinition在IoC容器中的注册 IoC容器的初始化过程简单来说,IoC容器的初始化是由前面介绍的refresh()方法来            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-26 12:49:48
                            
                                140阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             
Spring 运行机制一
 
刷新Spring上下文
    
        
            
            publicvoid refresh()     throws BeansException, IllegalStateException
             &n            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2010-11-04 09:47:15
                            
                                2489阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             Spring 运行机制一刷新Spring上下文publicvoid refresh()throws BeansException, IllegalStateException
{
synchronized(startupShutdownMonitor)
{
prepareRefresh(); //设置标识标识正在执行中线程同步
ConfigurableListableBean            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2010-11-04 09:47:18
                            
                                8659阅读
                            
                                                                                    
                                1评论
                            
                                                 
                 
                
                             
         
            
            
            
            1.创建一个新的AnnotationConfigApplicationContext,从给定的组件类派生bean定义,并自动刷新上下文。AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);2. 可以看到AnnotationConfigApplicati            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-01-29 09:23:47
                            
                                412阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            IOC 是如何工作的? 通过 ApplicationContext 创建 Spring 容器,容器读取配置文件 “/beans.xml” 并管理定义的 Bean 实例对象。 通过 ApplicationContext.getBean 获取 Bean 实例。 IOC 容器经历的几个阶段:Resourc ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-24 17:00:00
                            
                                274阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            1.ClassPathXmlApplicationContext类体系结构 左边的黄色部分是ApplicationContext体系继承结构,右边是BeanFactory结构体系,两个体系是典型的模板方法设计模式的使用。 从该继承体系可以看出: (1)BeanFactory是一个bean工厂的最基本            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-09-18 08:36:00
                            
                                129阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            应用程序在运行过程中能否去读取当前系统的环境变量或系统属性?这里涉及到一个非常重要的接口Environment,System.getenv,System.getProperties都是获取当前系统环境变量,Environment接口的实现类AbstractEnvironment,AbstractEnvironment的实现类StandardEnvironment,                在            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-16 10:50:20
                            
                                170阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1. IOC容器的初始化过程:IOC容器的初始化由refresh()方法启动,这个启动包括:BeanDifinition的Resource定位,加载和注册三个过程。初始化的过程不包含Bean依赖注入的实现。 第一个过程是Resource的定位过程。这个Resource的定位指的是BeanDefinition的资源定位,它由ResourceLoader通过统一的Resource接口完成。&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-26 12:42:42
                            
                                46阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            类初始化过程1、一个类要创建实例需要先加载并初始化该类,main方法所在的类需要先加载和初始化2、一个子类要初始化需要先初始化父类(extends关键字)3、一个类初始化就是执行<clinit>()方法。<clinit>()方法由静态类变量显示赋值代码和静态代码块组成(static关键字)	类变量显示赋值代码和静态代码块代码按照从上到下顺序执行(谁先出现谁...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-06 14:56:01
                            
                                2691阅读