Я только изучаю Spring, и что-то показалось мне очень странным в конфигурациях аннотаций, использующих атрибут name
в виде строки.
@Bean(name = "com.my.injected.Service")
public InjectedService injectedService() {
return injectedService;
}
Похоже ли это имя на Spring Bean Атрибуты id
и class
конфигурации XML?
<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
?
Вопрос изначально был основан на ложной предпосылке. Я отредактировал его, чтобы разъяснить суть этой предпосылки и сделать ее менее запутанной для новых людей, которые приходят вместе. Надеюсь, я сделал это так, что данные ответы по-прежнему точно применимы; извините, если нет.
name="DasBean"
так же хорош. Вы знаете, для чего предназначена эта аннотация? - person kolossus   schedule 07.05.2015