`
hepeng19861212
  • 浏览: 151047 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring源码阅读——2.spring-beans

    博客分类:
  • java
 
阅读更多

--------------------------org.springframework.beans----------------------------

CachedIntrospectionResults:用于辅助BeanWrapperImpl类,为了提高自省效率而作的cache。CachedIntrospectionResults并没有使用Introspector自带的对自省结果的缓存功能,而是自己实现了基于弱引用的cache。

BeanUtils:提供了一系列工具:根据class创建实例、查找class中的函数、获取class的PropertyDescriptor、在两个实例之间拷贝属性。

BeanWrapperImpl:访问javabean的属性。 类图:


 

DirectFieldAccessor:访问实例的field。

PropertyAccessorFactory:创建BeanWrapperImpl和DirectFieldAccessor。

--------------------------org.springframework.beans.support----------------------------

 ArgumentConvertingMethodInvoker:在查找匹配函数时做了扩展——如果MethodInvoker.findMatchingMethod()找不到,则typeConverter对函数参数进行转换,以此来找到相对匹配的函数。

PagedListHolder:包装一个list,然后对外提供和访问分页有关的方法。

PropertyComparator:根据bean的属性,对bean list或数组进行排序。

 

--------------------------org.springframework.beans.factory----------------------------

BeanFactory的初始化步骤和关闭步骤,参见BeanFactory代码的接口注释。

 

access子包:

SingletonBeanFactoryLocator用于加载多个分组的bean配置文件,且分别保证它们是单例的SingletonBeanFactoryLocator实例。默认加载classpath*:beanRefFactory.xml。其中useBeanFactory函数用于将bean配置文件中配置的BeanFactory类的bean,以BeanFactory形式返回。当引用计数为0时,即外部不再使用其中的beanFactory时,释放SingletonBeanFactoryLocator实例中的资源。

 

annotation子包:

定义了一些注解:Autowired、Configurable、Qualifier、Required、Value

实现了与注解相关的BeanPostProcessor:

AutowiredAnnotationBeanPostProcessor专门处理 bean的注解注入(包括在field上、method上、构造器、class上)

InitDestroyAnnotationBeanPostProcessor处理了bean的自定义init和destroy。

 

FactoryBean接口以及实现:

AbstractServiceLoaderBasedFactoryBean及其子类,主要是调用java.util.ServiceLoader来加载服务。还有其他FactoryBean,略去不讲。

此外AbstractFactoryBean还有其他子类:ListFactoryBean、MapFactoryBean、SetFactoryBean、ObjectFactoryCreatingFactoryBean(ObjectFactory,负责根据beanName从BeanFactory中getBean()获取实例)、ProviderCreatingFactoryBean(Provider,同ObjectFactory)、SortedResourcesFactoryBean(Resource[],根据locations加载资源并按url自然排序)。

AbstractBeanFactory还继承了FactoryBeanRegistrySupport。

--------------------------org.springframework.beans.factory.support--------------------------

BeanDefinition类图:


 

 

 

  • 大小: 189 KB
  • 大小: 103.3 KB
  • 大小: 248.1 KB
  • 大小: 126.8 KB
分享到:
评论

相关推荐

    spring3.0.0相关jar包

    org.springframework.beans-3.0.0.RELEASE org.springframework.context.support-3.0.0.RELEASE org.springframework.context-3.0.0.RELEASE org.springframework.core-3.0.0.RELEASE org.springframework....

    spring-framework-5.1.8.RELEASE-dist.zip

    Spring最新所有Jar包、文档、源码,包括spring-aop-5.1.8.RELEASE、spring-aspects-5.1.8.RELEASE、spring-beans-5.1.8.RELEASE、spring-context-5.1.8.RELEASE、spring-context-indexer-5.1.8.RELEASE、spring-...

    官方原版源码 spring-5.2.8.RELEASE.zip

    通过阅读源码,开发者可以理解Spring是如何通过精心设计的接口和类,以及一系列的设计模式,实现了高可扩展性和易用性的。 总的来说,Spring框架5.2.8.RELEASE源码的学习是一次深入理解Java企业级开发、掌握模块化...

    Spring2.5.5的jar包.zip

    开发一个基本的spring Application所需要用到的最小包: ...spring-beans.jar,spring-core.jar,spring-web.jar,spring-context.jar,spring-webmvc.jar 使用基本数据访问,持久化工具等数据功能所用到得包:

    官方原版源码spring-framework-4.3.25.RELEASE.zip

    研究Spring源码能帮助开发者提升对Java和软件设计的理解,学习最佳实践,提高代码质量和可维护性。同时,对于解决框架使用中的问题,或自定义扩展Spring功能,源码学习至关重要。 7. **未来发展趋势** 虽然Spring...

    spring3源码集合

    spring-beans-3.2.0.RELEASE-sources.jar spring-context-3.1.3.RELEASE-sources.jar spring-context-support-3.1.3.RELEASE-sources.jar spring-core-2.5.6-sources.jar spring-core-3.2.0.RELEASE-sources.jar ...

    spring4.3.1官方全套jar包下载

    4.3.1/spring-beans-4.3.1.RELEASE.jar 4.3.1/spring-context-4.3.1.RELEASE.jar 4.3.1/spring-core-4.3.1.RELEASE.jar 4.3.1/spring-expression-4.3.1.RELEASE.jar 4.3.1/spring-jdbc-4.3.1.RELEASE.jar 4.3.1/...

    官方spring-framework-4.3.13.RELEASE完整包

    2. **spring-framework-4.3.13.RELEASE-docs.zip**: 这个压缩包包含了Spring框架的官方文档,是学习和理解Spring的重要资源。文档详细阐述了Spring的架构、设计理念、配置方式、API使用等内容,帮助开发者快速上手...

    官方原版源码 spring-5.2.7.RELEASE.zip

    1. 阅读源码注释:Spring框架的源码注释详尽,是理解其工作原理的重要途径。 2. 分析核心类和接口:如`ApplicationContext`、`BeanFactory`、`AopProxy`等,理解它们的作用和相互关系。 3. 跟踪执行流程:通过断点...

    spring-framework-4.3.12.RELEASE--编译好的源码.rar

    通过阅读和分析Spring 4.3.12的源码,不仅可以掌握其工作原理,还能学习到良好的设计思想和编程实践,这对于提升个人的软件设计能力大有裨益。在实际项目中,理解源码有助于解决遇到的问题,进一步优化应用,提高...

    官方原版完整包 spring-framework-5.3.1.RELEASE.zip

    2. **spring-beans**: 支持Bean工厂和XML配置,是IoC容器实现的基础。 3. **spring-context**: 扩展了IoC容器,引入了上下文概念,提供了对国际化、事件、资源、缓存等支持。 4. **spring-aop**: 实现了面向切面...

    spring-framework-5.0.2.RELEASE-中文注释版-终极完美版.rar

    Spring框架由多个模块组成,包括Spring Core、Spring Beans、Spring AOP、Spring JDBC、Spring ORM、Spring Web和Spring MVC等。Spring Core是基础,提供了容器服务,如Bean工厂和ApplicationContext,负责对象的...

    spring3源码

    spring-beans-3.2.3.RELEASE-sources.jar;spring-context-3.2.3.RELEASE-sources.jar;spring-context-support-3.2.3.RELEASE-sources.jar;spring-core-3.2.3.RELEASE-sources.jar;spring-data-commons-1.5.1.RELEASE...

    官方源码 spring-framework-5.2.15.RELEASE.zip

    《Spring Framework 5.2.15.RELEASE 源码深度解析》 Spring Framework作为Java领域中最受欢迎的开源框架之一,它的每一个版本都备受关注。5.2.15.RELEASE是Spring Framework的一个稳定版本,它包含了丰富的特性和...

    spring-beans-4.2.4.RELEASE-sources.jar

    spring-beans-4.2.4-RELEASE.jar,免费下载 spring-context-4.2.4-RELEASE.jar,免费下载 spring-core-4.2.4-RELEASE.jar,免费下载 spring-expression-4.2.4-RELEASE.jar,免费下载 spring-context-support-4.2.4-...

    spring-framework-5.2.7.RELEASE.zip

    在"spring-framework-5.2.7.RELEASE.zip"这个压缩包中,包含了Spring Framework 5.2.7版本的所有源码、文档和库文件。 Spring 5是该框架的一个重大更新,引入了许多新特性和改进,旨在提高性能、增强可扩展性,并...

    官方原版源码spring-framework-5.1.6.RELEASE.zip

    在源码中,我们能发现`org.springframework.beans.factory`包下的`BeanFactory`接口和其实现类,如`DefaultListableBeanFactory`,是如何实现依赖查找和注入的。 3. **AOP(Aspect-Oriented Programming)**:...

    官方原版源码spring-framework-5.2.3.RELEASE.zip

    深入学习Spring源码,不仅能够帮助我们理解其工作原理,还能提升我们在实际项目中的问题排查能力。例如,当我们遇到Spring的依赖注入问题时,可以通过查看`BeanFactory`和`ApplicationContext`的相关源码来定位问题...

    SSI实例(源码+mysql数据库+部署)

    SSI实例(源码+数据库+部署说明),...spring-beans-3.2.1.RELEASE.jar spring-jdbc-3.2.1.RELEASE.jar spring-tx-3.2.1.RELEASE.jar struts2-core-2.2.1.jar struts2-spring-plugin-2.2.1.jar xwork-core-2.2.1.jar

    spring-framework-5.2.0.RELEASE-master.zip

    在源码中,`org.springframework.beans.factory`和`org.springframework.context`这两个包下的类和接口,如`BeanFactory`和`ApplicationContext`,是实现IOC的关键。 **Spring AOP(Aspect Oriented Programming)*...

Global site tag (gtag.js) - Google Analytics