spring-reading./README-FUTURE.md

27 KiB
Raw Blame History

logo

深入Spring从源码开始

探索Java最受欢迎的框架理解它的内部机制带大家从入门到精通。

Stars Badge Follow Badge Fork Badge Watchers Badge

Visitor Badge Wechat Badge CSDN Badge

技术 | 👋 简介 | 🍵 Why | 🙏 点个星 | 🌱 Spring源码 | 💬 联系我 | 贡献 | 🔄 更新 | 💻 统计


技术

👋简介

大家好呀我是Lex👨‍💻。我是一名拥有8年经验的Java 后端开发人员👨‍💼,也是一个对 Spring 框架充满热情❤️的程序员。为了帮助那些希望深入了解 Spring 框架的程序员们🧑‍💻,我创建了这个 “Spring 源码阅读系列”📖。通过这个系列,我希望能够与你们共同探索 Spring 的内部工作机制⚙️。如果您有同样的兴趣或问题🤔,请联系我📩

🍵为何做Spring源码分析

在我作为框架研发的开发者👨‍🔬的工作中,我经常遇到需要深入理解和调整框架行为的情况🔧。这些工作不只是简单地使用框架的API更多地是需要对框架的内部工作方式有详细的了解🔍。虽然Github上有关于Spring的简化版本📦,这些对于入门学习确实有很大的帮助但当涉及到真实的项目应用时与真正的Spring框架还是有很大的差异。因此我开始深入研究Spring的源码希望能够更透彻地理解其内部的工作机制以便更好地应用到我的实际工作中🧰。分享我的源码分析📝也是为了给那些希望真正理解Spring而不仅仅是使用它的开发者提供一些参考和帮助🙌

🙏顺手点个星

亲爱的朋友们👥,我真的花了很多心思💭去研究和整理这个“Spring 源码阅读系列”📘。如果你觉得这东西还不错👍,或者给你带来了一点点帮助🤗,麻烦点一下星星吧🌟。这真的对我意义重大🎖,每一颗星都能让我觉得所有的努力都是值得的💪。我知道这是小事一桩,但你的那一下点击🖱,对我来说就是最好的鼓励🎉。无论如何,都要感谢你抽时间🕰阅读我的内容,真的很感激🙏

🌱Spring 源码阅读系列

IOC容器

标题 地址 难度级别 视频讲解
【资源加载与访问】
资源加载 Resource
资源加载器 ResourceLoader
XML资源加载器 DocumentLoader
【元数据与过滤】
类元数据读取 MetadataReader
注解元数据 AnnotationMetadata
类过滤器 TypeFilter
条件过滤器 Condition
【Bean定义与注册】
Bean定义 BeanDefinition
Bean定义持有者 BeanDefinitionHolder
Bean定义注册器 BeanDefinitionRegistry
【Bean定义读取与扫描】
XML Bean定义读取器 XmlBeanDefinitionReader
属性文件Bean定义读取器 PropertiesBeanDefinitionReader
Groovy脚本Bean定义读取器 GroovyBeanDefinitionReader
注解Bean定义读取器 AnnotatedBeanDefinitionReader
类路径Bean定义扫描器 ClassPathBeanDefinitionScanner
【Bean生命周期过程】
Bean的定义解析 Bean的定义解析
Bean的初始化过程 Bean的初始化过程
Bean的依赖解析过程 Bean的依赖解析过程
Bean的销毁过程 Bean的销毁过程
【后置处理器与初始化】
属性设置后的初始化操作 InitializingBean
资源清理与销毁 DisposableBean
动态修改Bean定义 BeanDefinitionRegistryPostProcessor
动态调整Bean配置 BeanFactoryPostProcessor
调整Bean属性 BeanPostProcessor
Bean实例拦截 InstantiationAwareBeanPostProcessor
Bean销毁生命周期 DestructionAwareBeanPostProcessor
Bean定义的动态处理 MergedBeanDefinitionPostProcessor
调整Bean实例化策略 SmartInstantiationAwareBeanPostProcessor
All Beans完全初始化后 SmartInitializingSingleton
【Aware接口】
获取Bean名称 BeanNameAware
获取类加载器 BeanClassLoaderAware
与Bean工厂互动 BeanFactoryAware
感知运行环境 EnvironmentAware
嵌入值解析 EmbeddedValueResolverAware
资源加载策略 ResourceLoaderAware
发布应用事件 ApplicationEventPublisherAware
访问消息源 MessageSourceAware
感知应用启动过程 ApplicationStartupAware
访问应用上下文 ApplicationContextAware
了解关联导入信息 ImportAware
【核心注解】
Java配置 @Configuration
组件扫描 @ComponentScan
Bean定义 @Bean
导入配置 @Import
属性绑定 @PropertySource
初始化顺序 @DependsOn
条件注册 @Conditional
延迟加载 @Lazy
属性注入 @Value
依赖注入 @Autowired
注入依赖 @Inject
具名组件 @Named
初始化后操作 @PostConstruct
销毁前操作 @PreDestroy
资源绑定 @Resource
提供者机制 Provider
限定符 @Qualifier
作用域定义 @Scope
单例模式 @Singleton
定义主要候选项 @Primary
添加描述信息 @Description
指定注解角色 @Role
标记为可索引 @Indexed
指定顺序 @Order
  • Bean定义导入与组合
    • ImportBeanDefinitionRegistrar
    • ImportSelector
    • DeferredImportSelector
  • 属性编辑与类型转换
    • PropertyEditor
    • ConversionService
    • Converter
  • 表达式语言(SpEL)
    • Expression
    • ExpressionParser
    • EvaluationContext
    • PropertyAccessor
    • MethodResolver
    • TypeLocator
  • Bean工厂
    • BeanFactory
    • ListableBeanFactory
    • HierarchicalBeanFactory
    • ConfigurableBeanFactory
  • 基于Java的配置
    • ConfigurationClassPostProcessor
    • ConfigurationClassParser
  • 容器上下文
    • ClassPathXmlApplicationContext
    • FileSystemXmlApplicationContext
    • AnnotationConfigApplicationContext
    • GenericApplicationContext
  1. AOP (面向切面编程)
    • AOP 术语Aspect、Join point、Advice、Pointcut 等
    • Spring AOP 实现原理
    • 动态代理JDK 与 CGLIB
    • @AspectJ 支持与使用
    • 切点表达式解析
  2. 事务管理
    • Spring 事务管理介绍
    • 编程式与声明式事务
    • @Transactional 注解解析
    • 事务传播行为
    • 事务隔离级别
    • 事务管理器实现原理
  3. Spring MVC
    • Spring MVC 流程
    • DispatcherServlet 的角色与工作原理
    • 控制器Controller的工作机制
    • 视图解析与渲染
    • 异常处理
    • RESTful 支持
  4. Spring 数据访问
    • JdbcTemplate 的使用与实现原理
    • Spring Data JPA 简介
    • ORM 框架集成Hibernate、MyBatis 等
  5. Spring 安全Spring Security
    • 认证与授权的基本概念
    • Spring Security 的核心组件
    • 过滤器链
    • 用户详情服务
    • 密码加密
    • 记住我功能
  6. Spring Boot
    • Spring Boot 与 Spring 的区别
    • 自动配置原理
    • Spring Boot starter 介绍
    • Spring Boot Actuator
  7. Spring 事件机制
    • 事件的发布与监听
    • 自定义事件
  8. 高级主题
    • Spring 缓存抽象
    • Spring WebFlux (响应式编程)
    • Spring Session
    • Spring Websocket
  9. Spring 源码的编程风格与设计模式
    • 设计模式在 Spring 源码中的应用
    • Spring 源码阅读技巧

💬与我联系

✉️ Email | 💬 Issue | 🌐 CSDN Me about everything!

欢迎贡献!

如果你发现任何错误🔍或者有改进建议🛠️,欢迎提交 issue 或者 pull request。你的反馈📢对于我非常宝贵💎

🔄持续更新中

为了给大家提供最新🌱、最有价值的内容💼,我会坚持每天更新这个仓库。每一天,你都可以期待看到一些新的内容或者对已有内容的改进。如果你有任何建议或反馈📣,欢迎随时联系我📞。我非常珍视每一个反馈💌,因为这是我持续改进的动力🚀

💻我的 GitHub 统计

Star History Chart

🍱请我吃盒饭?

作者晚上还要写博客✍️,平时还需要工作💼,如果帮到了你可以请作者吃个盒饭🥡

logo logo