Sobes.tech
Middle

Spring'deki bean'lerde hangi kapsamlar (scopes) mevcuttur?

sobes.tech yapay zeka

AI'dan gelen yanıt

Spring Framework'te, bean'ler için birkaç standart kapsam alanı vardır:

  • singleton
  • prototype
  • request
  • session
  • application
  • websocket
Kapsam alanı Açıklama
singleton Her Spring bağlamı için bir bean örneği. Varsayılandır.
prototype Her talepte yeni bir bean örneği oluşturulur.
request Her HTTP isteği için bir bean örneği.
session Her HTTP oturumu için bir bean örneği.
application Her ServletContext bağlamı için bir bean örneği. Web uygulamaları tarafından kullanılır.
websocket Her WebSocket oturumu için bir bean örneği.

request, session, application ve websocket kapsam alanları, web bağlamında (örneğin, Spring MVC kullanırken) geçerlidir.

Kapsam alanı, @Scope anotasyonu kullanılarak belirtilebilir:

// Örnek singleton
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("singleton") // Açıkça belirtilmiştir, varsayılan olmasına rağmen
public class SingletonBean {
    // ...
}
// Örnek prototype
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("prototype")
public class PrototypeBean {
    // ...
}