Start here. This is the direct spoken answer to practice first.
Overview
Application objects declare what they need; the container builds and connects the managed object graph.
Inversion of control means application code gives control of object creation and wiring to a container instead of constructing every collaborator itself. Dependency injection is the mechanism Spring uses: a bean declares dependencies through its constructor, a factory method, or a setter, and the container supplies matching beans. The class can focus on its behavior rather than finding implementations. This also makes required dependencies visible and lets a unit test construct the class with controlled collaborators.