- Differentiate singleton, prototype, request, session, application
- Select scope by use case
- Avoid state bugs from wrong scope
flowchart TD
S1["Singleton\nOne instance per container"]
S2["Prototype\nNew instance per request for bean"]
S3["Request\nOne instance per HTTP request"]
S4["Session\nOne instance per user session"]
S5["Application\nOne instance per ServletContext"]
