随笔 - 11,  文章 - 4,  评论 - 0,  阅读 - 13700
  • 源地址

  • 本篇文章基于spring-framework Release v5.3.5(7c2a72c) 版本进行源码分析。

  • 官方源码地址: https://github.com/spring-projects/spring-framework

  • fork 项目地址:https://gitee.com/streamplume/spring-framework.git (v5.3.5-learning 分支根据个人理解添加了注释)

    澄清概念,设定判准,构建体系。 - 傅佩荣

  • spring-framework 可以理解成一个Bean容器管理框架。在系统运行时,由spring-framework框架统一管理Bean实例对象的创建,依赖和销毁,而不用业务系统主动维护依赖关系。在编写业务代码时,只要软件工程师按照系统规划,做好业务逻辑类的抽象,封装,那么在运行系统时,只要根据需要简单修改配置,就可以轻松切换不同业务逻辑的实现。同时 spring-framework 对管理的依赖无侵入性。

  • spring-framework 项目在启动时, 使用 ApplicationContext 实现类,创建程序运行上下文(coentext),并创建管理bean对象实例的BeanFactory, 注册响应事件的监听器 (Listener),并根据需要管理不同功能组件的生命周期(Lifecycle) 。

spring-framework 主要接口和实现类:

  • org.springframework.beans.factory.BeanFactory
    spring-framework 核心顶层接口。定义了获取 bean 实例和处理 bean 相关属性判断的标准。spring-framework主要功能都是围绕实现该接口功能。

  • org.springframework.beans.factory.support.DefaultListableBeanFactory
    spring-framework 中BeanFactory接口的默认实现类。目前运行项目时,默认使用该类管理 bean 对象实例。

  • org.springframework.context.ApplicationContext
    spring-framework 运行上下文环境顶级接口。继承 EnvironmentCapable 接口,ResourceLoader 子接口, BeanFactory 子接口,MessageSource 接口,ApplicationEventPublisher 接口,即定义了运行上下文环境 需要实现的标准。

  • org.springframework.context.support.ClassPathXmlApplicationContext
    spring-framework 运行上下文环境的一个实现类。该类实现读取 ClassPath 路径下的xml文件,加载 bean 相关的配置,并管理 bean 的创建,依赖。

  • org.springframework.beans.factory.config.BeanFactoryPostProcessor
    BeanFactory 后置处理器接口。进行 BeanFactory 类的后置处理。bean 配置文件的后置处理。

  • org.springframework.beans.factory.config.BeanPostProcessor
    Bean 后置处理器接口。Bean 创建时进行特殊处理。例如 Bean 的动态代理就是通过 org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator 实现。

  • org.springframework.context.event.ApplicationEventMulticaster
    事件广播器。统一管理注册的事件监听器。

  • org.springframework.context.ApplicationListener
    事件监听器。定义是事件监听器使用标准。

  • org.springframework.context.ApplicationEvent
    事件接口。定义了事件的标准规范。

  • org.springframework.core.convert.ConversionService
    类型转换服务接口。定义了将配置文件中字符串转换成目标类型的标准。

  • org.springframework.core.convert.support.DefaultConversionService
    类型转换服务默认实现类。
    DefaultConversionService

  • org.springframework.context.Lifecycle
    特殊bean生命周期管理接口。

  • org.springframework.context.LifecycleProcessor
    Lifecycle 接口的统一管理类。运行上下文环境加载好后,调用 Lifecycle 接口start()的方法

LifecycleProcessor

参考资料:

Spring源码深度解析31精讲: https://www.bilibili.com/video/BV1iZ4y137CZ

孙哥说Spring5: https://www.bilibili.com/video/BV185411477k

posted on   流羽  阅读(224)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示