| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > resource-ref (jdbc), для чего он? |
| Автор: WatchCat 9.12.2006, 16:56 | ||||
| Вот есть в web.xml такой тэг как resource-ref. Например
вот хочю понять, зачем он применяется для описания jdbc ресурса? Есть же <datasources> и к такому ресурсу можно нормально обратиться через
и для этого совсем необязательно описывать в web.xml resource-ref. |
| Автор: tux 9.12.2006, 17:26 |
| В resource-ref описывается, так сказать, логическое имя источника JDBC (у тебя jdbc/UserDatabase), которое указывает на физическое имя (java:/jdbc/UserDatabase). Если использовать в приложение логическое имя-ссылку, то можно как угодно менять источник данных, при этом с самом приложении не изменится ничего. Других причин использования resource-ref нет. |
| Автор: WatchCat 10.12.2006, 15:30 |
Довольно таки путано, тк <datasources> тоже описывает JNDI ссылку на ресурс, которая сама по себе логическая. Но немного покапавшись я понял <resource-ref> позволяет описать JDBC ресурс в дескрипторе приложения, тогда как <datasources> это у контейнера. Вроде так, если я чегото не напутал. |
| Автор: WatchCat 10.12.2006, 16:11 |
| Вот в том и дело, что есть JNDI имя JDBC ресурса, так на него и ещё одна ссылка. Вот только нафига делать |
| Автор: tux 10.12.2006, 16:23 | ||
Ну вот обращаешься ты к источнику данных из приложения. Естественно, тебе нужно внутри приложения хранить имя этого ресурса. Потом приложение начали разворачивать на сервере у заказчика. Там имя источника совсем другое. Тогда надо соответствующим образом менять это имя в приложении везде, где оно используется. А в реально большом приложении оно может упоминаться кучу раз. И не всегда потому что приложение плохо спроектировано. Понятно, что сделать это не так сложно, но все же удобнее использовать такие ссылки и поменять имя в одном месте. Вопрос философский, конечно. Использовать ссылки или не использовать - дело индивидуальное. |
| Автор: WatchCat 10.12.2006, 17:04 | ||
Совсем необязательно. Можно создать новый датасурс с необходимым JNDI именем, для JBoss'а достаточно в деплое создать файлик с описанием необходимого DS'а, контейнер-то может предоставлять множество датасурсов. Глано имя при разработке выбрать не DefaultDS просто я предпочитаю цепочку в 3 звена: СУБД <> datasource <> application а этот ресурс-реф добавляет ещё одно звено и всё. СУБД <> datasource <> resource-ref <> application Ну вобщем дело вкуса. Единственное применение для себя вижу если захочеться несколько приложений от разных провайдеров замапить на 1 датасурс. |
| Автор: tux 10.12.2006, 17:35 |
Это можно у себя на машине, у заказчика совсем не факт. В общем resource-ref дает иногда кой-какие удобства. |