Создайте очередь приоритетов с помощью компаратора из весны

В рамках изучения весны я пытаюсь объявить приоритетный компонент очереди объектов MyMessageObject, но продолжаю получать следующее исключение BeanCreationException: «Ошибка создания компонента с именем« messagesHeap », определенным в URL-адресе [file:/my.app.spring.xml ]: Не удалось разрешить соответствующий конструктор"

Вот мои весенние определения:

<bean id="messagesHeap" class="java.util.PriorityQueue">
    <constructor-arg type="int" name="initialCapacity" value="100" index="0"/>
    <constructor-arg name="comparator" type="java.util.Comparator" index="1"  ref="orderComparator"/>
</bean>

<bean id="orderComparator" class="com.my.myComparator"/>

Класс myComparator реализует java.util.Comparator по мере необходимости.

Что я здесь делаю неправильно?


person Jacob    schedule 05.07.2014    source источник


Ответы (1)


попробуй это

<bean id="messagesHeap" class="java.util.PriorityQueue">
    <constructor-arg value="100" />
    <constructor-arg ref="orderComparator" />
</bean>
person Evgeniy Dorofeev    schedule 05.07.2014
comment
Спасибо, это работает! Можете ли вы объяснить, почему отсутствие атрибута ‹i›name‹/i› решает проблему? - person Jacob; 05.07.2014
comment
spring docs: для этого требуется, чтобы символы отладки хранились в файле класса, чтобы можно было анализировать имена аргументов! - person Evgeniy Dorofeev; 05.07.2014