Middle
Quais são os escopos (scopes) existentes nos beans no Spring?
sobes.tech IA
Resposta da IA
No Spring Framework, existem várias áreas de escopo padrão para os beans:
- singleton
- prototype
- request
- session
- application
- websocket
| Área de escopo | Descrição |
|---|---|
| singleton | Uma instância do bean por cada contexto Spring. É o padrão. |
| prototype | Uma nova instância do bean é criada a cada solicitação. |
| request | Uma instância do bean por cada requisição HTTP. |
| session | Uma instância do bean por cada sessão HTTP. |
| application | Uma instância do bean por cada contexto ServletContext. Usado por aplicações web. |
| websocket | Uma instância do bean por cada sessão WebSocket. |
As áreas de escopo request, session, application e websocket são relevantes no contexto web (por exemplo, ao usar Spring MVC).
A área de escopo pode ser especificada usando a anotação @Scope:
// Exemplo singleton
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component
@Scope("singleton") // Especifica explicitamente, embora seja o padrão
public class SingletonBean {
// ...
}
// Exemplo prototype
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component
@Scope("prototype")
public class PrototypeBean {
// ...
}