Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring IoC map засунуть в list / 9 сообщений из 9, страница 1 из 1
15.01.2013, 16:21:21
    #38110965
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
Есть много списков типа классического Pair, но в XML будет много писанины, поэтому использую мапу типа
Код: xml
1.
2.
3.
4.
<util:map map-class="...">
 <entry key-ref="label" value-ref="template"/>
 ...И.Т.Д..
</util:map>


получилось коротко и понятно. В проге из мапы делаю списк. Все ОК!
однако, иногда требуется в одном списке повторы по первому элементу пары, типа
Код: xml
1.
2.
3.
4.
5.
<util:map map-class="...">
 <entry key-ref="label" value-ref="template"/>
 ...ещеМногоЧего..
 <entry key-ref="label" value-ref="фигняВсякая"/>
</util:map>


ну и как водится spring заменяет первое вхождение,причем такая ошибка обнаруживается на этапе исполнения по косвенным признакам, приходится бить на две мапы.

Может можно как то победить?
...
Рейтинг: 0 / 0
15.01.2013, 16:27:31
    #38110971
Adva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
am_sasa,

MultiValueMap
...
Рейтинг: 0 / 0
15.01.2013, 16:28:31
    #38110973
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
Это контракт Map коллекций в Java. Spring тут совершенно не при чем. Если у вас ключ не уникальный, то как должен работать тот кто по ключу ищет значение?
В этом случае можно реализовать какое-то композитное значение.
value-ref ссылается на бин, который и отвечает за то чтобы скомбинировать template и "фигняВсякая".

Если есть конкретика, можно обсудить конкретику. В вашем случае вам нужны повторы XML, но вы совершенно не объясняете как клиентский код должен с ними работать. Или там просто итератор по всем парам? Тогда может вам просто список пар нужен был а не map?
...
Рейтинг: 0 / 0
15.01.2013, 16:37:17
    #38110990
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
Blazkowicz В вашем случае вам нужны повторы XML, но вы совершенно не объясняете как клиентский код должен с ними работать. Или там просто итератор по всем парам? Тогда может вам просто список пар нужен был а не map?
из мапы делаю список и только идет перебор, мапа для короткой записи, иначе
Код: xml
1.
2.
3.
4.
5.
6.
<util:list list-class="...">
  <bean class="Pair">
     <property name="First" ref="label"/>
     <property name="Second" ref="фигняВсякая"/>
  </bean>
</util:list>

много букв получается
Я думал может интерфейс какой реализовать, получить сообщение о дубликатных ключах или еще что
...
Рейтинг: 0 / 0
15.01.2013, 16:42:09
    #38111001
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
можно действительно попробовать <util:map map-class="org.apache.commons.collections.map.MultiValueMap"/>
...
Рейтинг: 0 / 0
15.01.2013, 16:45:04
    #38111005
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
Blazkowicz,

спасибо, попробую
...
Рейтинг: 0 / 0
15.01.2013, 17:22:27
    #38111105
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
не взлетело... spring похоже к себе в мапу все забирает, а потом инициализирует бин, поэтому уже у него entry исчезает...
...
Рейтинг: 0 / 0
15.01.2013, 17:28:41
    #38111123
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
am_sasaне взлетело... spring похоже к себе в мапу все забирает, а потом инициализирует бин, поэтому уже у него entry исчезает...
Да, в BeanDefinitionParserDelegate всё ещё используется LinkedHashMap. Нужно написать своего потомка, и попробовать переопределить метод parseMapElement().
Затем найти способ как пропихнуть свой BeanDefinitionParserDelegate в контекст.
Смотреть DefaultBeanDefinitionDocumentReader, XmlBeanDefinitionReader и т.д.
...
Рейтинг: 0 / 0
15.01.2013, 17:31:56
    #38111132
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring IoC map засунуть в list
Blazkowicz,

спасибо, будем пробовать
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring IoC map засунуть в list / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]