{"repo":"DerekYRC/mini-spring","free":true,"listed":false,"github":"https://github.com/DerekYRC/mini-spring","clone":"git clone https://github.com/DerekYRC/mini-spring.git","description":"mini-spring is a simplified version of the Spring framework that helps you quickly familiarize yourself with Spring source code and master Spring's core principles. It extracts Spring's core logic with extremely simplified code while preserving Spring's core functionality.","language":"Java","stars":6367,"topics":["mini-spring","springboot","spring","springframework","spring-boot","spring-mvc","tiny-spring"],"license":"Apache-2.0","category":"api-integrations-sdks","readme_excerpt":"mini-spring English 简体中文 姊妹版： - mini-spring-cloud (简化版的spring cloud框架) - mini-netty (简化版的netty框架) - mini-claude-code (简化版的Claude Code) 关于 mini-spring 是简化版的spring框架，能帮助你快速熟悉spring源码和掌握spring的核心原理。抽取了spring的核心逻辑， 代码极度简化，保留spring的核心功能 ，如IoC和AOP、资源加载器、事件监听器、类型转换、容器扩展点、bean生命周期和作用域、应用上下文等核心功能。 如果本项目能帮助到你，请给个 STAR，谢谢！！！ 功能 基础篇 IoC 实现一个简单的容器 BeanDefinition和BeanDefinitionRegistry Bean实例化策略InstantiationStrategy 为bean填充属性 为bean注入bean 资源和资源加载器 在xml文件中定义bean 容器扩展机制BeanFactoryPostProcess和BeanPostProcessor 应用上下文ApplicationContext bean的初始化和销毁方法 Aware接口 bean作用域，增加prototype的支持 FactoryBean 容器事件和事件监听器 AOP 切点表达式 基于JDK的动态代理 基于CGLIB的动态代理 AOP代理工厂ProxyFactory 几种常用的Advice: BeforeAdvice/AfterAdvice/AfterReturningAdvice/ThrowsAdvice PointcutAdvisor：Pointcut和Advice的组合 动态代理融入bean生命周期 扩展篇 PropertyPlaceholderConfigurer 包扫描 @Value注解 基于注解@Autowired的依赖注入 类型转换（一） 类型转换（二） 高级篇 解决循环依赖问题（一）：没有代理对象 解决循环依赖问题（二）：有代理对象 其他 没有为代理bean设置属性(discovered and fixed by kerwin89) 支持懒加载和多切面增强(by zqczgl) 使用方法 阅读changelog.md 视频教程(完整版) 提问 点此提问 贡献 欢迎Pull Request 关于我 点此了解 Star History 版权说明 未取得本人书面许可，不得将该项目用于商业用途 参考 - 《Spring源码深度解析》 - 《Spring 源码解析》 - 《精通Spring 4.x》 - 《tiny-spring》","default_branch":null,"files":null,"tree":[],"storefront":"/r/DerekYRC","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/DerekYRC/mini-spring/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}