DEV Community

Mustafa  Çam
Mustafa Çam

Posted on

CDI scope

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.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay