Uygulamanızdaki kaynaklara her zaman kapsayıcıda yapılandırıldığı gibi doğrudan JNDI adıyla başvurabilirsiniz, ancak bunu yaparsanız, esasen kapsayıcıya özgü adı kodunuza bağlarsınız. Bunun bazı dezavantajları vardır, örneğin, daha sonra herhangi bir nedenle adı değiştirmek isterseniz, tüm uygulamalarınızdaki tüm referansları güncellemeniz ve ardından bunları yeniden oluşturmanız ve yeniden dağıtmanız gerekir.
<resource-ref>
başka bir indirme katmanı sunar: web.xml'de kullanmak istediğiniz adı belirtirsiniz ve konteynere bağlı olarak konteynere özgü bir yapılandırma dosyasında bir bağlama sağlarsınız.
Öyleyse burada olacak : java:comp/env/jdbc/primaryDB
adı aramak istediğinizi varsayalım . Kap, web.xml'nin için bir <resource-ref>
öğesi olduğunu bulur jdbc/primaryDB
, bu nedenle aşağıdakine benzer bir şey içeren kapsayıcıya özgü yapılandırmaya bakar:
<resource-ref>
<res-ref-name>jdbc/primaryDB</res-ref-name>
<jndi-name>jdbc/PrimaryDBInTheContainer</jndi-name>
</resource-ref>
Son olarak, adı altında kayıtlı nesneyi döndürür jdbc/PrimaryDBInTheContainer
.
Fikir kaynakların belirterek olmasıdır web.xml ayıran avantajına sahiptir geliştirici gelen rol deployer rolü. Başka bir deyişle, bir geliştirici olarak, gerekli kaynaklarınızın üretimde gerçekte ne dendiğini bilmenize gerek yok ve uygulamayı dağıtan kişi olarak, gerçek kaynaklara eşlenecek güzel bir isim listesine sahip olacaksınız.