Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Spring. Какая разница между<bean name= и <bean id=


Автор: olegrolik 1.8.2007, 11:30
Есть конфигурационный файл такой :
Код

<beans>
    <bean id="mailRecieveTask" class="com.tasks.RecieveTask"/>
 </beans>

и такой:
Код

<beans>
   <bean name="mailRecieveTask" class="com.tasks.RecieveTask"/>
</beans>


В чём разница?

Автор: Шмель 1.8.2007, 12:54
Эти два атрибута имеют одно и тоже значение. Разница в том, что атрибут id имеет тип ID, и поэтому XML-парсер может проверить существование бина с таким же именем в этом же конфиге, то есть уже твой редактор XML в котором ты пишешь конфиг скажет тебе, что элемент с таким id уже существует. Но спецификация XML накладывает ограничения на символы, которые могут присутствовать в атрибуте типа ID, поэтомя если вдруг понадобилось задать имя бина с символами, недопостимыми для этого типа, можно использовать name.

ЗЫ: http://static.springframework.org/spring/docs/2.0.x/reference/beans.html#beans-beanname

Автор: olegrolik 1.8.2007, 14:44
Т.е. я могу в одном конф. файле написать следующее:
Код

<beans>
    <bean id="mailTask" class="com.tasks.RecieveTask"/>
    <bean name="mailTask" class="com.tasks.ReplyTask"/>



Т.е. id и name - это разные типы, которые выполняют одинаковые функции ("называют" бин) ?

Автор: Шмель 1.8.2007, 14:52
Цитата(olegrolik @  1.8.2007,  14:44 Найти цитируемый пост)
Т.е. я могу в одном конф. файле написать следующее

ага, можно, только нафига?

Автор: olegrolik 2.8.2007, 13:00
Получается, что name гораздно практичнее, т.к. позволяет использовать буквы и символы. Просто в моём проекте есть и name, и id. Не знаешь с какой целью это сделано?

Автор: Шмель 2.8.2007, 15:13
Цитата(olegrolik @  2.8.2007,  13:00 Найти цитируемый пост)
Просто в моём проекте есть и name, и id. Не знаешь с какой целью это сделано? 

Понятия не имею, почему так сделано в твоем проекте. А для чего существуют два атрибута с одним назначением я уже писал, и в документации это есть.

Автор: olegrolik 2.8.2007, 17:19
Спасибо. Тема закрыта.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)