SORU
22 Mayıs 2010, CUMARTESİ


Web.xml kaynak-ref için ne kullanılır?

Sadece web.xml dosyanızda kaynak-ref eleman tanımlarsınız neden/ne zaman merak ediyorum?

/App server web tanımlı olacağını JNDI kullanarak düşündüm ve sonra Java kodunuzda JNDI referans bak?

Kaynak-ref tanımı bana biraz gereksiz gibi görünüyor ve yararlı olabilir zaman düşünemiyorum. Örnek:

<resource-ref>
  <description>Primary database</description>
  <res-ref-name>jdbc/primaryDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>CONTAINER</res-auth>
</resource-ref>

CEVAP
22 Mayıs 2010, CUMARTESİ


Her zaman doğrudan kabın içinde yapılandırılan JNDI adı uygulamanızda kaynaklara başvurabilirsiniz, ama eğer bunu yaparsanız, aslında kablo koduna konteyner özgü adı vardır. Bu bazı dezavantajları vardır, örneğin, eğer sen istediğin isim değiştirme sonra nedense, gerek güncelleme tüm başvurular tüm uygulamalar, ve sonra yeniden ve yeniden dağıtın onları.

<resource-ref> yönlendirme katmanı sunar: kullanmak istediğiniz adı belirtinweb.xmlve, kapsayıcı bağlı olarak, bir bağlama sağlamakkonteyner özgüyapılandırma dosyası.

Bu yüzdenbakalım ne olacakbakalım java:comp/env/jdbc/primaryDB ad arama. Konteyner bulurweb.xmlaşağıdakine benzer bir şey içeren konteyner-belirli bir yapılandırma içine bakmak böylece jdbc/primaryDB, <resource-ref> bir öğe vardır:

<resource-ref>
  <res-ref-name>jdbc/primaryDB</res-ref-name>
  <jndi-name>jdbc/PrimaryDBInTheContainer</jndi-name>
</resource-ref>

Son olarak, bir nesne jdbc/PrimaryDBInTheContainer adı altında kayıtlı döndürür.

Fikirbu belirtme kaynaklarweb.xmlayırıcı avantajı vardırgeliştiricibu roldeployerrol. Diğer bir deyişle, geliştirici olarak, gerek yok ne olduğunu gerekli kaynakları aslında denilen üretim ve adam dağıtma uygulaması, bir güzel isimleri eşleştirmek için gerçek bir kaynak.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Distractify

    Distractify

    1 Aralık 2011
  • Motor Trend Channel

    Motor Trend

    11 Mart 2006
  • Showtime

    Showtime

    21 HAZİRAN 2006