Sobes.tech
Middle

O que é o escopo do Spring?

sobes.tech IA

Resposta da IA

No Spring, o Scope define o ciclo de vida e o âmbito de um bean. Controla quantas instâncias do bean serão criadas e como elas estarão acessíveis.

Principais tipos de Scope:

  • singleton: Uma única instância do bean é criada no contexto da aplicação. Este é o Scope padrão.
  • prototype: Uma nova instância do bean é criada a cada solicitação.
  • request: Uma instância do bean é criada por requisição HTTP. Aplicável apenas em aplicações web.
  • session: Uma instância do bean é criada por sessão HTTP. Aplicável apenas em aplicações web.
  • application: Uma instância do bean é criada durante toda a vida útil do ServletContext. Aplicável apenas em aplicações web.

Exemplo de declaração de um bean com Scope especificado:

@Component
@Scope("prototype") // Especifica o scope prototype
public class MyPrototypeBean {
    // ...
}

Ou na configuração XML:

<bean id="myPrototypeBeanInicio" class="com.example.MyPrototypeBean" scope="prototype"/>

A escolha do Scope adequado depende do comportamento e do estado requeridos do bean. Singleton é adequado para beans sem estado, e prototype para beans com estado ou quando se requer isolamento de instâncias. Request, session e application são usados em contextos web para gerenciar o ciclo de vida dos beans de acordo com as requisições, sessões ou toda a aplicação web.