`
forever1121
  • 浏览: 16270 次
  • 性别: Icon_minigender_2
  • 来自: 齐齐哈尔
社区版块
存档分类
最新评论

Spring_4

阅读更多
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_dubbo spring_dubbo

    spring_dubbo spring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_dubbospring_...

    spring_名单spring_名单spring_名单

    spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单spring_名单...

    JavaEE源代码 Spring_Advices

    JavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源...

    精通Spring_4.x+企业应用开发实战

    精通Spring_4.x+企业应用开发实战,

    Spring示例_Printer_Spring_AOP_Spring_Proxy

    4. 定义一个切面类,包含切面逻辑,比如`PrintingAspect`,并使用`@Aspect`注解标记。 5. 在切面类中定义通知方法,如`@Before("execution(* com.example.Printer.print(..))")`,这将在`Printer`的`print`方法被...

    《精通Spring_4.x_企业应用开发实战》高清完整PDF版.7z

    《精通Spring 4.x 企业应用开发实战》是一本深入探讨Spring 4.x框架的权威指南,旨在帮助读者掌握在企业环境中使用Spring进行高效、稳定和可扩展的应用开发。本书全面覆盖了Spring 4.x的核心特性和最新改进,是...

    spring_day01

    4. **XML配置与注解配置**:Spring支持两种主要的配置方式:XML配置和注解配置。XML配置是早期常用的,通过`<bean>`标签定义Bean;而注解配置更简洁,如`@Component`、`@Service`、`@Repository`和`@Controller`等,...

    spring_2.5_core_lib.zip

    标题中的"spring_2.5_core_lib.zip"表明这是一个与Spring框架2.5核心库相关的压缩文件,包含了一些核心组件和依赖的库。这个压缩包主要用于支持基于Spring 2.5版本的应用开发。 1. **Spring框架**: Spring是一个...

    Spring_2000_Spring_Hibernate_HibernateTemplate

    标题中的"Spring_2000_Spring_Hibernate_HibernateTemplate"显然指的是一个关于Spring框架、Hibernate ORM框架以及其在2000年左右的版本或应用方式的专题。在这个主题下,我们将深入探讨Spring框架的核心特性,以及...

    spring_Home(包含jdbc相关jar包).rar

    包含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_Dev_Guide

    《Spring框架开发指南》 Spring Framework是Java平台上广泛使用的开源框架,它为构建高质量、可维护的Java应用程序提供了全面的支持。本指南旨在深入探讨Spring框架的核心特性及其在实际开发中的应用,帮助开发者...

    SpringTest_springtest_spring_java_Framework_

    4. **pom.xml**:Maven的项目对象模型,列出了项目依赖,包括Spring框架和其他库。 5. **README.md**:项目介绍和使用指南,可能会详细说明如何运行和测试项目。 了解Spring框架的基本知识后,我们可以深入探讨如何...

    spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行

    spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,保证能运行 spring_acegi精彩实例,带MYSQL数据库脚本,...

    王勇_JAVA教程_Spring_源代

    - `spring_aop1`到`spring_aop4`的文件代表了AOP的学习内容。AOP是Spring框架的重要特性,它允许程序员定义"横切关注点",如日志、事务管理等,这些关注点可以跨多个对象进行传播,而无需侵入每个对象的代码。 - ...

    Spring_in_Action中文版(第二版)

    第一部分,通常在4.Spring_in_Action中文版(第二版)_part04.pdf中,会介绍Spring的基础概念和核心特性。这部分可能包括: 1. Spring概述:解释Spring框架的历史、目标和架构,以及它如何简化企业级Java开发。 2. ...

    spring_day05_spring_

    4. **Spring MVC**:Spring的Model-View-Controller架构用于构建Web应用。它提供了处理HTTP请求、数据绑定、视图渲染等功能。 5. **数据访问集成**:Spring支持各种数据访问技术,包括JDBC、ORM框架(如Hibernate、...

    spring_mvc.zip_spring_spring mvc_springmvc_springmvc架构

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建控制器层,实现模型-视图-控制器(MVC)的设计模式。这个“spring_mvc.zip”压缩包很可能是为了帮助初学者快速入门...

    spring_api+spring_reference中文版

    4. **Spring Boot**:快速启动Spring应用的工具,它默认配置了许多常见的设置,减少了大量初始化代码,使得开发者可以更专注于业务逻辑。 5. **Spring Data**:Spring的另一个重要模块,旨在简化数据访问。它提供了...

    spring_aop.rar_spring_aop

    4. **连接点(Join Point)**:连接点是切点在实际应用中匹配到的具体位置,比如某个特定方法的执行时刻。 5. **织入(Weaving)**:织入是将切面应用到目标对象,创建代理对象的过程。Spring支持三种织入方式:...

    spring_light_1

    spring_light_1 spring_light_1 spring_light_1 spring_light_1

Global site tag (gtag.js) - Google Analytics