Spring容器内部工作机制
Spring的AbstractApplicationContext是ApplicationContext抽象实现类,该抽象类的refresh()方法定义了Spring容器在加载配置文件后的各项处理过程。
refresh()内部定义的执行逻辑
//初始化BeanFactory:根据配置文件实例化BeanFactory,getBeanFactory()方法由具体子类实现。
//Spring将配置文件的信息载入到容器的Bean(BeanDefinitionRegistry)定义注册表中,当此时Bean还为未初始化。
ConfigurableListableBeanFactory beanFactory = getBeanFactory();
//调用工厂后处理器:根据反射机制从BeanDefinitionRegistry中找出所有BeanFactoryPostProcessor类型的Bean,并调用其postProcessBeanFactory()接口方法
invokeBeanFactoryPostProcessors();
//注册Bean后处理器:根据反射机制从BeanDefinitionRegistry中找出所有BeanPostProcessor类型的Bean
//并将它们注册到容器Bean后处理器的注册表中
registerBeanPostProcessors();
//初始化消息源:初始化容器的国际化信息资源
initMessageSource();
//初始化应用上下文事件广播器
initApplicationEventMulticaster();
//初始化其他特殊的Bean:这是一个钩子方法,子类可以借助这个方法执行一些特殊的操作
onRefresh();
//注册事件监听器
registerListener();
//初始化所有单实例的Bean,使用懒初始化模式的Bean除外:初始化Bean后,将它们放入Spring容器的缓存中
finishBeanFactoryInitialization(bean Factory):
//发布上下文刷新事件:创建上下文刷新事件,事件广播器负责将这些事件广播到每个注册的事件监听器中
finishRefresh();
分享到:
相关推荐
spring_dubbo spring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_...
JavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源...
精通Spring_4.x+企业应用开发实战,
4. 定义一个切面类,包含切面逻辑,比如`PrintingAspect`,并使用`@Aspect`注解标记。 5. 在切面类中定义通知方法,如`@Before("execution(* com.example.Printer.print(..))")`,这将在`Printer`的`print`方法被...
《精通Spring 4.x 企业应用开发实战》是一本深入探讨Spring 4.x框架的权威指南,旨在帮助读者掌握在企业环境中使用Spring进行高效、稳定和可扩展的应用开发。本书全面覆盖了Spring 4.x的核心特性和最新改进,是...
4. **XML配置与注解配置**:Spring支持两种主要的配置方式:XML配置和注解配置。XML配置是早期常用的,通过`<bean>`标签定义Bean;而注解配置更简洁,如`@Component`、`@Service`、`@Repository`和`@Controller`等,...
标题中的"spring_2.5_core_lib.zip"表明这是一个与Spring框架2.5核心库相关的压缩文件,包含了一些核心组件和依赖的库。这个压缩包主要用于支持基于Spring 2.5版本的应用开发。 1. **Spring框架**: Spring是一个...
标题中的"Spring_2000_Spring_Hibernate_HibernateTemplate"显然指的是一个关于Spring框架、Hibernate ORM框架以及其在2000年左右的版本或应用方式的专题。在这个主题下,我们将深入探讨Spring框架的核心特性,以及...
包含spring全家桶 包括spring_web spring_webmvc 两个jar 包 包括AspectJ com.springsource.net.sf.cglib-sources-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar ...JAR包等 十分齐全
《Spring框架开发指南》 Spring Framework是Java平台上广泛使用的开源框架,它为构建高质量、可维护的Java应用程序提供了全面的支持。本指南旨在深入探讨Spring框架的核心特性及其在实际开发中的应用,帮助开发者...
4. **pom.xml**:Maven的项目对象模型,列出了项目依赖,包括Spring框架和其他库。 5. **README.md**:项目介绍和使用指南,可能会详细说明如何运行和测试项目。 了解Spring框架的基本知识后,我们可以深入探讨如何...
spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,...
- `spring_aop1`到`spring_aop4`的文件代表了AOP的学习内容。AOP是Spring框架的重要特性,它允许程序员定义"横切关注点",如日志、事务管理等,这些关注点可以跨多个对象进行传播,而无需侵入每个对象的代码。 - ...
第一部分,通常在4.Spring_in_Action中文版(第二版)_part04.pdf中,会介绍Spring的基础概念和核心特性。这部分可能包括: 1. Spring概述:解释Spring框架的历史、目标和架构,以及它如何简化企业级Java开发。 2. ...
4. **Spring MVC**:Spring的Model-View-Controller架构用于构建Web应用。它提供了处理HTTP请求、数据绑定、视图渲染等功能。 5. **数据访问集成**:Spring支持各种数据访问技术,包括JDBC、ORM框架(如Hibernate、...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建控制器层,实现模型-视图-控制器(MVC)的设计模式。这个“spring_mvc.zip”压缩包很可能是为了帮助初学者快速入门...
4. **Spring Boot**:快速启动Spring应用的工具,它默认配置了许多常见的设置,减少了大量初始化代码,使得开发者可以更专注于业务逻辑。 5. **Spring Data**:Spring的另一个重要模块,旨在简化数据访问。它提供了...
4. **连接点(Join Point)**:连接点是切点在实际应用中匹配到的具体位置,比如某个特定方法的执行时刻。 5. **织入(Weaving)**:织入是将切面应用到目标对象,创建代理对象的过程。Spring支持三种织入方式:...
spring_light_1 spring_light_1 spring_light_1 spring_light_1
在描述中提到的“Java_Spring_Swagger_Eclipse4_5_2”,意味着这个项目是在Eclipse IDE 4.5.2版本下进行的,这是一个流行的Java开发环境,支持各种插件和工具,包括对Spring框架的良好支持。 【标签】"Java_Spring_...