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
getBeanretorna 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.