--------------------------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类图:
相关推荐
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最新所有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是如何通过精心设计的接口和类,以及一系列的设计模式,实现了高可扩展性和易用性的。 总的来说,Spring框架5.2.8.RELEASE源码的学习是一次深入理解Java企业级开发、掌握模块化...
开发一个基本的spring Application所需要用到的最小包: ...spring-beans.jar,spring-core.jar,spring-web.jar,spring-context.jar,spring-webmvc.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-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 ...
2. **spring-framework-4.3.13.RELEASE-docs.zip**: 这个压缩包包含了Spring框架的官方文档,是学习和理解Spring的重要资源。文档详细阐述了Spring的架构、设计理念、配置方式、API使用等内容,帮助开发者快速上手...
1. 阅读源码注释:Spring框架的源码注释详尽,是理解其工作原理的重要途径。 2. 分析核心类和接口:如`ApplicationContext`、`BeanFactory`、`AopProxy`等,理解它们的作用和相互关系。 3. 跟踪执行流程:通过断点...
通过阅读和分析Spring 4.3.12的源码,不仅可以掌握其工作原理,还能学习到良好的设计思想和编程实践,这对于提升个人的软件设计能力大有裨益。在实际项目中,理解源码有助于解决遇到的问题,进一步优化应用,提高...
Spring框架由多个模块组成,包括Spring Core、Spring Beans、Spring AOP、Spring JDBC、Spring ORM、Spring Web和Spring MVC等。Spring Core是基础,提供了容器服务,如Bean工厂和ApplicationContext,负责对象的...
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 源码深度解析》 Spring Framework作为Java领域中最受欢迎的开源框架之一,它的每一个版本都备受关注。5.2.15.RELEASE是Spring Framework的一个稳定版本,它包含了丰富的特性和...
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源码能帮助开发者提升对Java和软件设计的理解,学习最佳实践,提高代码质量和可维护性。同时,对于解决框架使用中的问题,或自定义扩展Spring功能,源码学习至关重要。 7. **未来发展趋势** 虽然Spring...
2. **spring-beans**: 支持Bean工厂和XML配置,是IoC容器实现的基础。 3. **spring-context**: 扩展了IoC容器,引入了上下文概念,提供了对国际化、事件、资源、缓存等支持。 4. **spring-aop**: 实现了面向切面...
在"spring-framework-5.2.7.RELEASE.zip"这个压缩包中,包含了Spring Framework 5.2.7版本的所有源码、文档和库文件。 Spring 5是该框架的一个重大更新,引入了许多新特性和改进,旨在提高性能、增强可扩展性,并...
深入学习Spring源码,不仅能够帮助我们理解其工作原理,还能提升我们在实际项目中的问题排查能力。例如,当我们遇到Spring的依赖注入问题时,可以通过查看`BeanFactory`和`ApplicationContext`的相关源码来定位问题...
在源码中,我们能发现`org.springframework.beans.factory`包下的`BeanFactory`接口和其实现类,如`DefaultListableBeanFactory`,是如何实现依赖查找和注入的。 3. **AOP(Aspect-Oriented Programming)**:...
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
在源码中,`org.springframework.beans.factory`和`org.springframework.context`这两个包下的类和接口,如`BeanFactory`和`ApplicationContext`,是实现IOC的关键。 **Spring AOP(Aspect Oriented Programming)*...