Если я не ошибаюсь, по умолчанию имя компонента bean-компонента, объявленного с помощью @Component, является именем его класса, его первая буква в нижнем регистре.Это означает, что
@Component
public class SuggestionService {
объявляет компонент типа SuggestionService
и имени suggestionService
.Это эквивалентно
@Component("suggestionService")
public class SuggestionService {
или
<bean id="suggestionService" .../>
В XML вы переопределяете другой бин того же типа, но с другим именем:
<bean id="SuggestionService" class="com.hp.it.km.search.web.suggestion.SuggestionService">
...
</bean>
Таким образом, либо укажите имя компонента в аннотации как SuggestionService
, либо используйте идентификатор suggestionService
в XML (не забудьте также изменить элемент <ref>
или удалить его,так как это не нужно).В этом случае определение XML переопределит определение аннотации.