Inversion of Control

// if not using ioc container, u need to control when, how, what is created manually

Main interfaces:

What the container does:

  1. Scans classes (@Component, @Service, etc.)
  2. Creates objects (beans)
  3. Resolves dependencies
  4. Injects dependencies
  5. Manages lifecycle (init, destroy, scopes)