When it comes to Spring MVC, knowing about the various scopes of Spring beans is an essential interview question to consider. A bean's scope refers to a bean's life-cycle and how long objects are retained for a given scope. Spring offers six different scopes for beans - singleton, prototype, request, session, application and websocket. Singleton scope ensures that only one instance of a bean is created per application context and it will be reused again if referred. Prototype scope denotes that a new instance of the bean will be created each time it is requested while in request scope a single bean is created each time an HTTP request lands on the server with subsequent requests reusing the same instance; this applies only to web aware Spring ApplicationContexts. Differently than the associated behaviors of the previous scopes session scope produces another instance of Bean class in web applications whenever an HTTP session event occurs while like request scope this too applies only when you're running in a web-aware Spring ApplicationContext. On top of these there are also two other scopes worth considering which are application and websocket scopes: application increases the liveliness span so that bean exists for as long as your whole application does while websocket makes a long lived conversation possible between browser and server due to its relaxed restrictions on resource requests meaning that bean lives from the opening of WebSocket connection until its closure.