spring生命周期怎么记
-
Spring的生命周期可以通过以下三个阶段来记忆:初始化阶段、运行阶段和销毁阶段。
-
初始化阶段:
在初始化阶段,Spring会执行一系列的操作,包括配置解析、Bean的实例化、属性注入、依赖注入等。在这个阶段,Spring会读取配置文件,创建Bean工厂,并根据配置文件中的定义,逐个实例化Bean,并对其进行属性注入和依赖注入。 -
运行阶段:
在运行阶段,Spring框架会根据配置文件中的定义,将各个Bean组装起来,形成一个完整的应用程序。在这个阶段,Spring会对各个Bean进行初始化操作,包括调用Bean的初始化方法、执行各个Bean的生命周期回调方法等。 -
销毁阶段:
在应用程序关闭或者容器被销毁时,Spring将执行一系列的销毁操作。在销毁阶段,Spring会调用各个Bean的销毁方法、执行各个Bean的生命周期回调方法,并释放资源、关闭数据库连接等清理工作。
总结:
记忆Spring的生命周期可以分为初始化阶段、运行阶段和销毁阶段。在初始化阶段,Spring会进行配置解析、Bean的实例化、属性注入、依赖注入等操作。在运行阶段,Spring会将各个Bean组装成一个完整的应用程序,并进行初始化操作。在销毁阶段,Spring会执行销毁操作,包括调用Bean的销毁方法、执行生命周期回调方法等。通过这三个阶段,可以很好地理解和记忆Spring的生命周期。1年前 -
-
记住Spring的生命周期可以分解为以下几个关键点:
-
容器创建和初始化:Spring容器的生命周期从创建开始,首先会实例化并加载配置文件中定义的Bean定义。接下来,Spring会根据这些定义,创建并初始化相应的Bean实例。这一阶段包括Bean的依赖注入,即将Bean所依赖的其他Bean或属性注入到Bean中。
-
自定义初始化方法:在Bean实例化和依赖注入完成后,Spring会检查Bean是否实现了InitializingBean接口。如果是,则会调用Bean的afterPropertiesSet()方法,该方法被用于执行一些自定义的初始化逻辑。此外,还可以使用@Bean注解中的initMethod属性指定一个方法作为初始化方法。
-
使用Bean:在容器创建和初始化完成后,可以使用ApplicationContext或BeanFactory从容器中获取Bean实例。可以使用@Autowired注解或者XML配置文件中的自动装配方式,将Bean注入到其他Bean中。
-
容器关闭和销毁:当应用程序关闭时,需要手动关闭Spring容器,以确保资源的正确释放。可以使用关闭钩子来关闭容器,也可以调用ApplicationContext或ConfigurableApplicationContext接口的close()方法。在容器关闭之前,Spring会调用实现了DisposableBean接口的Bean的destroy()方法,用于执行一些清理操作。此外,也可以使用@Bean注解中的destroyMethod属性指定一个方法作为销毁方法。
-
自定义销毁方法:除了实现DisposableBean接口外,还可以在Bean类中自定义销毁方法。可以使用@PreDestroy注解标注一个方法作为销毁方法,该方法会在Bean销毁之前被调用。也可以使用@Bean注解中的destroyMethod属性指定一个方法作为销毁方法。
记住Spring的生命周期可以通过理解和记忆以上五个关键点来完成。这些关键点涵盖了Spring容器的创建、初始化、使用以及关闭和销毁过程中的重要阶段。
1年前 -
-
Spring是一个开源的Java应用框架,用于构建企业级Java应用。它提供了一种可扩展的、高效的、基于组件的软件开发模型,其中一个重要的概念就是Spring容器的生命周期。下面将从方法和操作流程两个方面讲解如何记忆Spring的生命周期。
方式一:使用记忆法
1.想象Spring容器是一个生命周期的容器,其中有若干个生命周期的阶段;
2.根据Spring容器的生命周期阶段划分,将其记忆为:创建、初始化、销毁;
3.进一步将每个阶段的子阶段进行记忆。方式二:使用关键词记忆法
1.创建阶段:ContextLoaderListener、BeanFactoryPostProcessor、BeanPostProcessor、BeanPostProcessor的子阶段InstantiationAwareBeanPostProcessor(实例化前后处理器)、ApplicationContextAware(应用上下文感知)、Bean的实例化;
2.初始化阶段:CustomEditorConfigurer(自定义属性编辑器配置)、PropertyPlaceholderConfigurer(属性占位符配置)、Bean的属性设置、Aware回调(BeanNameAware、BeanFactoryAware、ResourceLoaderAware等)、InitializingBean(初始化方法)、BeanPostProcessor子阶段InitializingBean和DisposableBean;
3.销毁阶段:BeanPostProcessor子阶段DisposableBean、自定义销毁方法(@PreDestroy、destroy-method 属性)、关闭容器。方式三:使用操作流程记忆法
1.创建阶段操作流程:
(1)加载Spring配置文件;
(2)实例化ApplicationContext上下文;
(3)通过ContextLoaderListener监听器完成BeanFactory的初始化;
(4)执行BeanFactoryPostProcessor;
(5)执行BeanPostProcessor的子阶段InstantiationAwareBeanPostProcessor,处理Bean的实例化;
(6)执行BeanPostProcessor。2.初始化阶段操作流程:
(1)执行CustomEditorConfigurer、PropertyPlaceholderConfigurer等配置;
(2)设置Bean的属性;
(3)执行Aware回调(BeanNameAware、BeanFactoryAware、ResourceLoaderAware);
(4)执行InitializingBean的实现类的afterPropertiesSet()方法进行初始化;
(5)执行BeanPostProcessor的子阶段InitializingBean,进行初始化;
(6)执行BeanPostProcessor的实现类的postProcessBeforeInitialization()方法;
(7)执行BeanPostProcessor的实现类的postProcessAfterInitialization()方法。3.销毁阶段操作流程:
(1)执行BeanPostProcessor的子阶段DisposableBean;
(2)执行自定义销毁方法(@PreDestroy、destroy-method 属性);
(3)关闭容器。通过以上三个方式的记忆法,可以帮助记住和理解Spring容器的生命周期,从而更好地使用Spring框架进行开发和调试。
1年前