A design principle: Spring controls object creation and lifecycle.
Spring has IoC Container, which creates, wires, and manages objects
✅ Loose coupling
✅ Testability
✅ Maintainability
✅ Extensibility
// if not using ioc container, u need to control when, how, what is created manually
Main interfaces:
BeanFactory (basic)ApplicationContext (advanced, most used)What the container does:
@Component, @Service, etc.)