Junior — Middle
Qual é a diferença entre o escopo Singleton e Prototype no contexto de injeções de dependências?
sobes.tech IA
Resposta da IA
No contexto da injeção de dependências, o escopo (scope) determina o ciclo de vida e o número de instâncias de objetos criados.
-
Singleton: o objeto é criado uma vez durante todo o ciclo de vida da aplicação ou do contêiner DI. Todas as solicitações para essa dependência recebem a mesma instância. Isso é conveniente para serviços que precisam manter estado ou serem compartilhados.
-
Prototype: uma nova instância do objeto é criada a cada solicitação. Isso é útil quando é necessário um objeto independente com seu próprio estado.
Exemplo:
// Escopo Singleton
@Component
@Scope("singleton")
public class MyService {
// uma instância para toda a aplicação
}
// Escopo Prototype
@Component
@Scope("prototype")
public class MyPrototypeService {
// nova instância a cada solicitação
}
Assim, Singleton garante uma única instância, enquanto Prototype fornece múltiplas instâncias independentes, o que afeta a gestão do estado e o desempenho da aplicação.