A framework for building Java applications, provides:
Spring itself is modular, not a full product. (like a toolbox)
Application Start
↓
Create ApplicationContext (create IOC container)
↓
Scan Classpath
↓
Read Bean Definitions
↓
Build Dependency Graph (Analyze and build)
↓
Instantiate Beans
↓
Inject Dependencies (DI)
↓
Lifecycle Callbacks
↓
Application Ready