Java: полезно ли определять bean-компоненты в XML?

В проекте, над которым я работаю, который использует Spring, я вижу кое-что, что действительно поражает меня. Очевидно, существуют модульные тесты, которым для работы нужны bean-компоненты, и эти bean-компоненты создаются из файлов XML, содержащих такие вещи, как:

<bean class="...ListDTO">
 <constructor-arg>
  <map>
   <entry key="use1key">
    <value>use1value</value>
   </entry>
   <entry key="use2key">
    <value>use2value</value>
   </entry>
  </map>
 </constructor-arg>
 <constructor-arg>
  <map>
   <entry key="nature1key">
    <value>nature1value</value>
   </entry>
   <entry key="nature2key">
    <value>nature2value</value>
   </entry>
  </map>
 </constructor-arg>
 <constructor-arg>
  <value>false</value>
 </constructor-arg>
</bean>

И что же произошло? Конструктор класса ... ListDTO изменился, и, следовательно, bean-компонент, по-видимому, больше не может быть создан из этого (очень многословного IMHO) XML.

Может кто-нибудь объяснить мне, почему это хорошая практика (действительно ли?) Помещать такие вещи в XML вместо кода Java? Если бы это было в коде Java, как только ... ListDTO изменил бы модульный тест, он бы отказался компилироваться (даже если бы часть модульного теста, инстанцирующая этот bean-компонент, не была выполнена [по какой-либо причине]).

Дополнительный вопрос: есть ли способ легко найти все эти сломанные "bean-компоненты в XML" в проекте, кроме запуска всех модульных тестов, посмотреть, какие из них не работают, а затем промыть и повторить?

Мне кажется довольно серьезной проблемой, что вы можете изменить конструктор, и IDE будет работать так, как будто все в порядке: каково для этого оправдание? (*)

5
задан Gugussee 25 January 2011 в 14:42
поделиться