mini-spring is a simplified version of the Spring framework. It helps you quickly understand Spring's source code and core principles. The project extracts Spring’s essential logic while keeping the code minimal, preserving key features like IoC, AOP, resource loading, event listeners, type conversion, container extension points, bean lifecycle and scope, application context, and more.
- IoC
- Simple Bean Container
- BeanDefinition and BeanDefinitionRegistry
- Bean Instantiation Strategy
- Populating Bean Properties
- Injecting a Bean into Another Bean
- Resources and Resource Loaders
- Defining Beans in XML
- Container Extension Mechanisms (BeanFactoryPostProcessor & BeanPostProcessor)
- ApplicationContext
- Bean Initialization and Destruction Methods
- Aware Interface
- Bean Scope - Adding Prototype Support
- FactoryBean
- Container Events and Event Listeners
- PropertyPlaceholderConfigurer
- Package Scan
- @Value Annotation
- @Autowired Annotation
- Dependency Injection with @Autowired
- Type Conversion (Part 1)
- Type Conversion (Part 2)
- Solving Circular Dependency Problem (Part 1): Without Proxy Objects
- Solving Circular Dependency Problem (Part 2): With Proxy Beans
- Proxy bean properties not set (discovered and fixed by kerwin89)
- Support for lazy loading and multiple aspects (by zqczgl)
Refer to changelog.md