27 Eylül 2010 Pazartesi

Seam annotations

Anladığım, yeni öğrendiğim annotation'lar;

@Name


@Name("componentName")

Class'a verilen ismi belirler. Bu sayede context'te bu isimle cagırabiliriz. Kullanıcı arayüz'de atama ve tanımlama yaparken componentName yazılan yere ne yazılmışsa onu yazarak nesnelerine veya metodlarına ulaşabiliriz. İstenildigi sekilde isimlendirilebilir fakat tek olmalıdır. Class ismiyle aynı olma zorunluluğu yoktur.

@Scope
@Scope(ScopeType.CONVERSATION)
Nesnenin ne kadar süre context'te kalacağını yani yaşam süresini belirler.

Scope Türleri : EVENT, PAGE,CONVERSATION, SESSION, BUSINESS_PROCESS, APPLICATION, STATELESS.

EVENT : Default degerdir. Tek bir istek boyunca yaşar
PAGE : sayfa açık kaldığı sürece yaşar, devam eder.
CONVERSATION : Birkaç sayfadaki bilgiler alınacaksa o sayfalar boyunca yaşar.
SESSION : Oturum kapanıncaya kadar yaşar
BUSINESS_PROCESS :
APPLICATION : uygulama kapanıncaya kadar yaşar.
STATELESS :

~

@In

Context'te inject edilen nesne var ise onun bir instance'ını getirir. Eğer yoksa null döndürür.

@In(create=true)
Inject edilen nesne null olduğunda hata verir. Eer create=true denilirse SEAM o nesnenin bir instance'ını oluşturur.

@Out
Başına @Onut annotation'ı konulan nesne context'te gönderilir ve başka bir yerden aynı nesne @In ile inject edilebilir.

@Factory

Metodlar üzerinde kullanılır. İlgili componentten bağımsız olarak kullanılabilir. Yani herhangi bir yerden verilen isim ile cagrılabilir.



Hiç yorum yok:

Yorum Gönder