JSF Ders22 - Bean Scopes


    Bean scopeları managed beanin ne kadar süre canlı kalacağını, hangi kullanıcı ve isteklerin önceki bean örneğine erişebileceğini kontrol eder.

Bir çok scope türü mevcuttur.
  • Request Scope  (@RequestScope)
  • Session Scope   (@SessionScope)
  • Application Scope  (@ApplicationScope)
  • ViewScoped (@ViewScoped)
  • FlowScoped (@FlowScoped)
  • CustomScoped (@CustomScoped)
  • NoneScoped (@NoneScoped)

Bir managed bean sınıfında eğer scope belirtilmezse default olarak RequestScope seçilmiş olur.

Request Scope (@RequestScope)
  • Yaşam süresi sadece yapılan istekle sınırlıdır. Aynı kullanıcı aynı sayfa üzerinde yeni bir istek dahi oluştursa yeni bir bean örneklenir.
  • Beane diğer kullanıcılar tarafından erişilemez.
  • Daha önce tanımlanan bean örneğine kimse erişemez.
Session Scope  (@SessionScope)
  • Yaşam süresi session (oturum) boyunca devam eder. Aynı kullanıcı farkla sayfalar üzerinde yeni bir istek oluşturursa aynı bean örneği kullanılmaya devam eder.
  • Beane diğer kullanıcılar tarafından erişilemez.
  • Daha önce tanımlanan bean örneğine oturum boyunca sadece aynı kullanıcı erişebilir.
Application Scope  (@ApplicationScope)
  • Yaşam süresi uygulama çalıştığı sürece devam eder. Farklı kullanıcılar farklı sayfalar üzerinde yeni istekler oluştursa dahi hep aynı bean örneği kullanılır.
  • Beane diğer kullanıcılar tarafından erişilir. Herkese açıktır.
  • Daha önce tanımlanan bean örneğine uygulama sürdüğü sürece herkes tarafından erişilebilir.
ViewScoped (@ViewScoped)
  • Aynı kullanıcının aynı sayfada uzun süre işlem yaptığı durumlarda kullanılır.
  • Beane diğer kullanıcılar tarafından erişilemez.
  • Daha önce tanımlanan bean örneğine aynı kullanıcı aynı sayfada kaldığı sürece erişebilir.
FlowScoped (@FlowScoped)
  • Aynı kullanıcının aynı sayfa kümesinde uzun süre işlem yaptığı durumlarda kullanılır.
  • Beane diğer kullanıcılar tarafından erişilemez.
  • Daha önce tanımlanan bean örneğine aynı kullanıcı aynı sayfa kümesinde kaldığı sürece erişebilir.
CustomScoped (@CustomScoped(value="#{birMap}"))
  • Bean mapte depolanır.Lifecycleı programcı kontrol eder.
NoneScoped (@NoneScoped)
  • Bean scopea yerleştirilmez.
  • Beanin diğer beanler tarafından referans edildiği durumlarda kullanılır.

Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)