Какой может быть сценарий использования Spring bean idref?

Я знаю это idref используется для передачи идентификатора компонента (т. е. строкового значения, но не ссылки). Меня спросили в интервью, в чем может быть случай использования idref? Почему и когда его следует использовать?

1 ответ

Решение

idref просто добавляет уровень безопасности, проверяя во время развертывания, что упомянутый именованный компонент фактически существует.

Очень хороший пример с соответствующим объяснением приведен в этой ссылке

пример

<bean id="abc" class="..."/>

<bean id="xyz" class="...">
  <property name="abcName">
      <idref bean="abc" />
  </property>
</bean>

также может быть написано как

<bean id="abc" class="..." />

<bean id="xyz" class="...">
  <property name="abcName" value="abc" />
</bean>

Преимущество использования первого способа уже описано.

Если вы используете второй метод, то проверка значения, переданного в abcName собственность xyz боб т.е. во время загрузки контекста.

Ошибки обнаруживаются только тогда, когда xyz боб создается. Таким образом, мы никогда не узнаем, были ли какие-либо опечатки введены разработчиком на этапе создания экземпляра.

Примечание: это просто рекомендуемый подход, а не обязательный подход

Другие вопросы по тегам