Junior — Middle
Spring'de singleton ve prototype değerlerine sahip bean'ler için kapsam tanımının ne anlama geldiği ve bunun davranışlarını nasıl etkilediği nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Spring'de, bir bean'in görünürlük alanı (scope), bean örneğinin yaşam süresi ve görünürlüğünü belirler.
-
singleton — varsayılan alandır. Bu scope ile bir bean her talep edildiğinde, Spring tüm konteyner yaşam döngüsü boyunca aynı örneği döner. Bu, bean'in bir kez oluşturulduğu ve tekrar kullanıldığı anlamına gelir.
-
prototype — her talepte yeni bir bean örneği oluşturulur. Spring, bu bean'lerin yaşam döngüsünü yönetmez, bu nedenle her
getBeançağrısı yeni bir nesne döner.
Davranış üzerindeki etkisi:
- Singleton bean'ler kaynak tasarrufu sağlar ve tüm kullanıcılar için ortak bir durum sunar.
- Prototype bean'ler, her kullanım için bağımsız duruma sahip yeni bir örneğe ihtiyaç duyulduğunda faydalıdır.
Örnek:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// her getBean çağrısı yeni bir nesne oluşturur
}
@Component
@Scope("singleton")
public class MySingletonBean {
// tüm konteyner için tek bir nesne
}
Bu nedenle, scope seçimi, nesnelerin nasıl ve ne zaman oluşturulacağını ve uygulama içinde ne kadar süreyle yaşayacaklarını etkiler.