Junior — Middle
How is the scope for Spring components determined when a new HTTP request is initiated?
sobes.tech AI
Answer from AI
In Spring, the scope of components defines how long an instance of a bean lives and in what context it is used.
For HTTP requests, the request scope is often used, which means a new instance of the component is created for each new HTTP request. This is convenient when you need to store data specific to a single request.
Example of usage:
@Component
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class RequestScopedBean {
// fields and methods
}
Here, Spring creates a new instance of RequestScopedBean for each HTTP request. If the component has a singleton scope (the default), then one instance is used for the entire lifecycle of the application.
Thus, when a new HTTP request is initiated, Spring creates new beans with the request scope, and for other scopes, it uses existing instances according to their configurations.