Sobes.tech
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 {
    // ...
}