Я просто изучаю весну, и что-то поразило меня как очень странное относительно конфигураций аннотаций, используя атрибут name
как строку.Какова цель атрибута имени аннотации Spring Bean?
@Bean(name = "com.my.injected.Service")
public InjectedService injectedService() {
return injectedService;
}
Это имя похоже на Весенний боб XML configuration id
and class
attributes?
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
Почему это не просто
@Bean(clazz = com.my.injected.Service.class)
public InjectedService injectedService() {
return injectedService;
}
вместо этого?
Вы в полной мере определяете путь в обоих случаях, и на самом деле использование класса облегчает вашу среду IDE, чтобы рассказать вам, когда вы ее напортачили. Я понимаю, что сначала была создана XML-конфигурация, и, естественно, она всегда искала вещи по строкам, так что это просто перерыв? Есть ли преимущество в использовании строк или основных недостатков для использования .class
?
Вопрос был первоначально основан на ложном предположении. Я отредактировал его, чтобы описать, что это за предпосылка, и сделать его менее запутанным для новых людей, которые приходят. Надеюсь, я сделал это так, чтобы данные ответы все еще были применимы; извините, если нет.
Потому что он побеждает цель * называть * что-то. Вы решили предоставить FQN. 'name =" DasBean "' так же хорош. Вы знаете, для чего предназначена эта аннотация? – kolossus
Ха-ха, ясно, что нет. Я думаю, что я должен просто следовать примеру, который злоупотребляет аннотацией. –