`
ordinary
  • 浏览: 79504 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring 3.0加载bean

阅读更多
     最近在公司弄spring升级,大概看了下spring3.0加载bean的代码,给自己总结下,有啥不妥,希望大牛指点。
     spring加载bean主要在AbstractApplicationContext中的refresh()方法中实现,大概加载的流程如下:

prepareRefresh();//刷新前处理

ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();//初始化beanFactory

prepareBeanFactory(beanFactory);//在应用上下文中准备beanfactory

postProcessBeanFactory(beanFactory);//beanfactory前处理

invokeBeanFactoryPostProcessors(beanFactory);//调用工厂后处理

registerBeanPostProcessors(beanFactory);//注册工厂后处理

        initMessageSource();//初始化消息

        initApplicationEventMulticaster();//初始化应用上下文事件广播器

onRefresh();//特殊bean的刷新

registerListeners();//注册监听器

        finishBeanFactoryInitialization(beanFactory);//完成beanfactory的初始化

        finishRefresh();//结束刷新

        说明:

        prepareRefresh:设置当前应用上下文为激活状态;

        obtainFreshBeanFactory:刷新beanfactory,获取beanfactory;

        prepareBeanFactory:设置classload,设置表达式解析器,设置属性编辑器(去掉了color解析器),添加                         beanfactory后处理器。,添加解析器;

        postProcessBeanFactory:beanfactory后处理器,不同的应用上下文设置不同的后处理器;

        invokeBeanFactoryPostProcessors:调用beanfactory定义注册后解析器,调用beanfactory处理器,获得beanfactory后置处理器并分类,分别调用;

        registerBeanPostProcessors:仿照invokeBeanFactoryPostProcessors注册beanfactory后处理器;

        initApplicationEventMulticaster();初始化应用上下文事件广播器;

        registerListeners:把上下文事件添加到上下文事件广播器中;

        finishBeanFactoryInitialization:实例化所有非延迟加载的单例;

        finishRefresh:初始化生命周期,刷新生命周期,发布事件。
分享到:
评论
4 楼 ordinary 2010-05-08  
jitabc 写道
移步至:
详解 Spring 3.0 基于 Annotation 的依赖注入实现
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-iocannt/index.html

谢谢了
3 楼 jitabc 2010-05-08  
移步至:
详解 Spring 3.0 基于 Annotation 的依赖注入实现
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-iocannt/index.html
2 楼 hanwesley 2010-05-07  
感觉LZ写的有点杂乱。
springIOC实现很重要的一个方法就是refresh
1 楼 michael.softtech 2010-05-07  
呵呵,偶也是菜鸟。
随便说两句。感觉你这个内容和标题不大搭。
你说的这些顶多算个加载bean的一个入口。具体一些的还要追一下
上面提到的obtainFreshBeanFactory postProcessBeanFactory: 这个方法的代码.

还有这句:
    beanfactory后处理器,不同的应用上下文设置不同的后处理器;
我觉得有待推敲。我觉得beanpostprocessor和上下文没什么关系

相关推荐

    spring3.0 jar包

    对于多语言应用,Spring 3.0增强了本地化处理,提供更灵活的资源加载策略。 在“lib”文件夹中,可能包含了Spring 3.0所需的一系列jar包,如spring-context、spring-beans、spring-webmvc等,这些jar包分别对应...

    spring3.0的API

    1. **Bean表达式语言(Bean Expression Language, BEML)**:Spring 3.0引入了基于Groovy的表达式语言,允许在配置中进行更复杂的逻辑判断和属性设置。 2. **泛型注解支持**:Spring 3.0开始支持泛型类型的注解,使...

    Spring3.0中文帮助文档

    7. **JSR-303/JSR-349 Bean Validation**:Spring 3.0集成了Bean Validation标准,允许开发者为模型对象定义验证规则,增强了数据校验的能力。 8. **国际化**:Spring 3.0支持国际化,通过ResourceBundle和...

    Spring3.0 配置文件中加载Properties文件的小例子

    本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...

    spring3.0jar包

    2. **JSR-303 Bean Validation集成**:Spring 3.0支持Java Bean Validation规范,通过JSR-303注解可以对对象属性进行验证,提供了一种声明式的方式,增强了业务逻辑的安全性。 3. **Expression Language (SpEL)**:...

    Spring 3.0就这么简单源码Maven的jar包001

    同时,Spring 3.0加强了对JSR-303(Java Bean Validation)的支持,提供了数据验证功能,使验证规则可以直接在模型对象上定义,简化了业务逻辑。 在AOP(面向切面编程)方面,Spring 3.0提供了更灵活的切入点表达式...

    spring3.0MVC中文教材

    2. **Spring Expression Language (SpEL)**: 引入了一个新的表达式语言——Spring Expression Language,可以用于定义基于XML和注解的Bean定义。 3. **REST Web服务支持**: Spring 3.0支持RESTful Web服务的开发,...

    spring3.0完整jar包(绝对全面,不像一些说全且不全的资源)

    至于“spring3.0-lib”这个压缩包,很可能包含了Spring 3.0所有必要的JAR文件,包括上述各个模块的实现。在使用时,开发者需要根据项目需求选择合适的JAR添加到类路径中。为了确保项目运行正常,应仔细检查包含的JAR...

    spring3.0开发包

    这些组件的结合使得Spring 3.0成为一个功能强大的开发框架,涵盖了从基本的bean管理到复杂的Web应用和持久层操作的多个方面。通过依赖注入、AOP和其他设计模式,Spring帮助开发者创建松散耦合、可测试和易于维护的...

    spring3.0整合Xfire1.2.6 开发webservice需要的jar包

    Spring 3.0是Spring框架的一个重大更新,引入了许多新特性和改进,如支持JSR-303 Bean Validation,对AspectJ注解的支持增强,以及对RESTful Web服务的全面支持等。这些特性使得Spring 3.0成为构建复杂应用程序的...

    spring3.0 全JAR包

    ApplicationContext是Spring中的核心接口,它提供了加载bean定义、管理bean生命周期以及提供bean之间的依赖注入的能力。此外,还包含了事件传播、国际化支持以及资源访问等功能。 2. **spring-beans-3.1.4.RELEASE....

    spring3.0最新lib包

    这个"spring3.0最新lib包"包含了Spring框架的不同模块,每个模块都有独立的JAR文件,允许开发者根据实际项目需求来选择和引入必要的依赖,而不是一次性加载整个大的spring.jar,这大大减小了应用的体积并提高了性能...

    Spring3.0源码2

    8. **国际化(Internationalization, i18n)**:Spring 3.0支持多语言环境,`MessageSource`接口和`ResourceBundleMessageSource`类用于加载和解析消息源。 通过阅读Spring 3.0的源码,我们可以深入了解Spring是...

    spring3.0的xsd文件.rar

    Spring 3.0是Spring框架的一个重要版本,它引入了许多新特性和改进,极大地提升了开发效率和灵活性。XSD(XML Schema Definition)文件在Spring框架中扮演着核心角色,它们定义了Spring配置文件的结构和规则,使得...

    Spring 3.0 整合Ibatis 3

    ### Spring 3.0 整合 iBatis 3 的实践与配置 #### 一、背景介绍 在软件开发过程中,经常会遇到需要整合多种技术框架的情况。本文将详细介绍如何将 Spring 3.0 与 iBatis 3 进行整合。尽管作者提到 iBatis 3 在当时...

    spring3.0的最新官方例子源码spring-samples

    这个"spring3.0的最新官方例子源码spring-samples"压缩包包含的是Spring官方提供的示例代码,旨在帮助开发者理解和学习如何在实际项目中应用Spring框架。以下是对这些源码的详细解析: 1. **依赖注入(Dependency ...

    spring3.0 xsd文件

    Spring 3.0 XSD 文件是Spring框架在3.0版本中使用的XML Schema定义文件,它们主要用于配置Spring框架的应用上下文和服务。XSD文件的作用在于为XML配置提供结构化约束和验证,确保开发者遵循正确的格式编写配置。在...

    spring3.0MVC中文教程

    ### Spring3.0MVC框架概述 Spring3.0MVC是Spring框架的Web模块,专为构建高效、可扩展的Web应用程序而设计。它不仅提供了丰富的功能来满足Web开发的需求,还具备高度的可配置性和灵活性,能够无缝集成到现有的Web...

    spring3.0新特性官方ppt资料

    在3.0版本中,Spring AOP(面向切面编程)对AspectJ的支持进一步加强,包括编译时编织(CTW)和加载时编织(LTW)。这使得开发者可以更方便地使用AspectJ来定义和执行切面,提高代码的整洁度和可复用性。 5. **...

Global site tag (gtag.js) - Google Analytics