Start here. This is the direct spoken answer to practice first.
Overview
A scope tells the container when to create and reuse an instance for one bean definition.
Spring's default singleton scope creates one shared instance per bean definition per ApplicationContext. Prototype creates a new instance each time that bean is requested or injected. In a web-aware context, request, session, application, and WebSocket scopes tie an instance to those lifecycles. A Spring singleton is not a JVM-wide guarantee and is not the same as hard-coding the GoF singleton pattern. Scope controls instance reuse; it does not make an object thread-safe.