Sobes.tech
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.