Какой может быть сценарий использования 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
боб создается. Таким образом, мы никогда не узнаем, были ли какие-либо опечатки введены разработчиком на этапе создания экземпляра.
Примечание: это просто рекомендуемый подход, а не обязательный подход