Sobes.tech
Junior — Middle

Cosa significa la definizione dell'ambito per i bean con valori singleton e prototype in Spring, e come influisce sul loro comportamento?

sobes.tech AI

Risposta dell'AI

In Spring, l'ambito di visibilità (scope) di un bean definisce il tempo di vita e la visibilità dell'istanza del bean.

  • singleton — è l'ambito predefinito. Ogni volta che viene richiesto un bean con questo scope, Spring restituisce la stessa istanza per tutto il ciclo di vita del contenitore. Ciò significa che il bean viene creato una volta sola e riutilizzato.

  • prototype — ad ogni richiesta, viene creata una nuova istanza del bean. Spring non gestisce il ciclo di vita di questi bean dopo la creazione, quindi ogni chiamata a getBean restituisce un nuovo oggetto.

Impatto sul comportamento:

  • I singleton bean risparmiano risorse e forniscono uno stato condiviso per tutti gli utenti.
  • I prototype bean sono utili quando è necessaria una nuova istanza con stato indipendente per ogni utilizzo.

Esempio:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // ogni chiamata a getBean creerà un nuovo oggetto
}

@Component
@Scope("singleton")
public class MySingletonBean {
    // un oggetto per tutto il contenitore
}

Pertanto, la scelta dello scope influisce su come e quando vengono creati gli oggetti e su quanto a lungo vivono nell'applicazione.