In un progetto a cui sto lavorando, che sta usando Spring, vedo qualcosa che mi fa davvero impazzire. A quanto pare ci sono test di unità che hanno bisogno di lavorare e fagioli quei fagioli vengono creati dal file XML, che contiene cose come:Java: è buona pratica definire i bean in 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>
E che cosa è accaduto? Il costruttore della classe ... ListDTO è cambiato e quindi il bean apparentemente non può più essere creato da questo XML molto dettagliato.
Qualcuno può spiegarmi perché è buona pratica (è davvero?) Mettere tale cosa in un codice XML anziché in Java? Se fosse nel codice Java, non appena il ... ListDTO avrebbe cambiato il test dell'unità, si sarebbe rifiutato di compilare (anche se la parte del test dell'unità che creasse l'istanza del bean non fosse stata eseguita [per qualsiasi ragione]).
Domanda bonus: c'è un modo per trovare facilmente tutti questi "chicchi in XML" danneggiati in un progetto oltre a eseguire tutti i test unitari, vedere quali falliscono e quindi risciacquare e ripetere?
Per me sembra un problema piuttosto serio che è possibile modificare un costruttore e che l'IDE si comporterebbe come se tutto fosse a posto: qual è la giustificazione per questo? (*)
(*) e la scrittura: falso costruttore-arg> per 'falsa 'non mi sembra una buona giustificazione ... –
Gugussee