SORU
17 Ocak 2013, PERŞEMBE


bahar proxy fasulye kapsamlı

Biri baharın kullanım @ScopedProxy açıklama açıklayabilir mi? Bendüşündümbir oturum kapsamı fasulye ile ilgisi yoktu, ama oldukça ne emin değilim.

Kapsamları benim kullanımı, @ScopedProxy ek açıklama olmadan oturum kapsamlı fasulye kullandım (veya SOP kapsamlı yakınlık olmadan), gerçekten düzgün bir şekilde kullanmayı eminim.

CEVAP
17 Ocak 2013, PERŞEMBE


Bahar dokümanlar Section 3.4.4.5 çok iyi açıklıyor:

(aşağıdaki not lütfen 'userPreferences' haliyle bean tanımı eksik):

<bean id="userPreferences" class="com.foo.UserPreferences" scope="session"/>

<bean id="userManager" class="com.foo.UserManager">
    <property name="userPreferences" ref="userPreferences"/>
</bean>

Singleton bean açıktır yukarıda yapılandırmasından 'HTTP başvurusu ile enjekte ediliyor Oturum kapsamlı bean' userPreferences'. kullanıcısı Yöneticisi'ni seçin Önemli nokta burada< . em ^'kullanıcısı Yöneticisi'ni seçin' fasulye tek... olacakkonteyner başına tam bir kez örneği,ve bağımlılıkları(bu durumda, sadece bir 'userPreferences' bean)ayrıca sadece (!) enjekte edilecektir.

Bu 'kullanıcısı Yöneticisi'ni seçin' (kavramsal olarak) sadece aynı çalışır 'userPreferences' nesne, aslında enjekte edildi. anlamına gelir

Bu işbirliği bir nesne (genellikle) HTTP kapsamlı bir Oturum bağımlılık fasulye enjekte zaman istediğin şey değil. Daha doğrusune istiyoruz 'kullanıcısı Yöneticisi'ni seçin' konteyner başına nesnesi . bir tekve sonra,HTTP Oturumu ömrü boyunca, ve bir 'userPreferences' belirli nesne Oturum HTTP dedi . görmek ve kullanmak istiyoruz .

Aslında ne ihtiyacın var o zaman enjekte bir tür nesne olduğunu ortaya koyar aynı ortak arabirim olarak UserPreferences sınıf (ideal bir nesneye bir UserPreferences örneği) ve zeki yapabilmek için, gidip getir gerçek UserPreferences nesneden ne olursa olsun, temel ölçüm mekanizması seçilmiş (HTTP isteği, Oturum, vb.). Daha sonra güvenli bir şekilde 'hiçbirşeyin üzerine basılı UserPreferences başvuru bir . bu durumun edilecek' bean, kullanıcısı Yöneticisi'ni seçin Bu proxy nesnesi enjekte edebiliriz ^strong>proxy.

Bizim durumumuzdakullanıcısı Yöneticisi'ni seçin bir örnek bağımlılık enjekte UserPreferences nesne üzerinde bir yöntemi istediğinde, gerçekten proxy yöntem çağırma olacak... vekil sonra gidip gerçek UserPreferences (bu durumda) HTTP oturumdan nesne getirecek, ve alınan gerçek UserPreferences üzerine çağırma nesnesi yöntemi temsilci.

Aşağıdaki istek, oturum, ve globalSession kapsamlı işbirliği içine nesneleri: fasulye enjekte ederken doğru ve eksiksiz, yapılandırma ihtiyacımız var

<bean id="userPreferences" class="com.foo.UserPreferences" scope="session">
    <aop:scoped-proxy/>
</bean>

<bean id="userManager" class="com.foo.UserManager">
    <property name="userPreferences" ref="userPreferences"/>
</bean>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNET

    CNET

    5 Mayıs 2006
  • TheRightTire

    TheRightTire

    14 EKİM 2009
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006