Java'da CDI (Contexts and Dependency Injection) scope, bir bean'in yaşam süresini ve hangi durumlarda yeni bir instance'ın oluşturulacağını belirleyen bir mekanizmadır. CDI scope'lar, bean'lerin uygulama içindeki farklı kullanım senaryolarına göre nasıl yönetileceğini tanımlar¹.
CDI'de kullanılan bazı yaygın scope'lar şunlardır:
- @RequestScoped: Bean, bir HTTP isteği boyunca yaşar ve her yeni istek için yeni bir instance oluşturulur².
- @SessionScoped: Bean, bir kullanıcının HTTP oturumu boyunca yaşar ve oturum sona erene kadar aynı instance kullanılır².
- @ApplicationScoped: Bean, tüm uygulama boyunca yaşar ve tüm kullanıcılar arasında paylaşılır. Uygulama çalıştığı sürece tek bir instance oluşturulur ve bu instance tüm kullanıcılar tarafından kullanılır².
- @Dependent: Varsayılan scope'dur. Bean, bir başka bean'e bağımlı olarak yaşar ve onun yaşam döngüsüne bağlıdır. Yani, bağımlı bean ne zaman yaratılırsa ya da yok edilirse, dependent scope'daki bean de o zaman yaratılır veya yok edilir².
- @ConversationScoped: Bean, bir kullanıcının birden fazla istek boyunca yürüttüğü bir "konuşma" süresince yaşar. Konuşma kapsamı, geliştirici tarafından kontrol edilen sınırlar içinde birden fazla istek boyunca uzatılabilir².
Bu scope'lar, bean'lerin oluşturulması, kullanılması ve yok edilmesi süreçlerini yönetir ve uygulamanın performansını ve bellek kullanımını optimize etmeye yardımcı olur. Ayrıca, uygulamanın farklı bölümlerindeki bean'lerin birbiriyle nasıl etkileşime gireceğini de belirler¹².
Kaynak: Bing ile konuşma, 18.05.2024
(1) An Introduction to CDI in Java | Baeldung. https://www.baeldung.com/java-ee-cdi.
(2) 23.8 Using Scopes - Java Platform, Enterprise Edition: The Java EE .... https://docs.oracle.com/javaee/7/tutorial/cdi-basic008.htm.
(3) Java EE CDI bean scopes - Java Code Geeks. https://www.javacodegeeks.com/2013/04/java-ee-cdi-bean-scopes.html.
(4) Using Scopes - The Java EE 6 Tutorial - Oracle. https://docs.oracle.com/javaee/6/tutorial/doc/gjbbk.html.
(5) undefined. http://java.sun.com/xml/ns/javaee.
(6) undefined. http://www.w3.org/2001/XMLSchema-instance.
(7) undefined. http://java.sun.com/xml/ns/javaee/beans_1_0.xsd.
Top comments (0)