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 {
// ...
}