Sobes.tech
Junior — Middle

O que significa a definição de escopo para os beans com valores singleton e prototype no Spring, e como isso afeta o seu comportamento?

sobes.tech IA

Resposta da IA

No Spring, o âmbito de visibilidade (scope) de um bean define o tempo de vida e a visibilidade da instância do bean.

  • singleton — é o âmbito padrão. Sempre que um bean com esse scope é solicitado, o Spring retorna a mesma instância durante todo o ciclo de vida do contêiner. Isso significa que o bean é criado uma vez e reutilizado.

  • prototype — a cada solicitação, uma nova instância do bean é criada. O Spring não gerencia o ciclo de vida desses beans após sua criação, portanto, cada chamada a getBean retorna um novo objeto.

Impacto no comportamento:

  • Beans singleton economizam recursos e fornecem um estado compartilhado para todos os usuários.
  • Beans prototype são úteis quando é necessária uma nova instância com estado independente para cada uso.

Exemplo:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // cada chamada a getBean criará um novo objeto
}

@Component
@Scope("singleton")
public class MySingletonBean {
    // um objeto para todo o contêiner
}

Assim, a escolha do scope afeta como e quando os objetos são criados e quanto tempo eles vivem na aplicação.