Java:在XML中定义bean是否是一种好的做法?
在我正在使用的一个项目中,使用Spring的时候,我看到一些令我头脑发热的东西。显然,有需要豆类工作单元测试和那些豆都是从XML文件创建,包含类似的事情:Java:在XML中定义bean是否是一种好的做法?
<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发生了变化,因此显然不能从此(非常详细的恕我直言)XML创建该bean。
有人可以解释我为什么是个好习惯(是不是真的?)把这样的事情在一个XML而不是Java代码?如果它是在Java代码中,只要ListDTO改变了,单元测试就会拒绝编译(即使单元测试实例化这个bean的部分没有被执行[无论出于何种原因])。
奖金的问题:是否有方法可以轻松地找到所有这些破“在XML豆”中的一个项目,除了运行所有的单元测试,看看哪些是失败的,然后冲洗和重复的?
对我来说,似乎是一个很严重的问题,你可以改变一个构造函数和,仿佛一切都很好的IDE将采取行动:究竟是什么理由? (*)
这背后的想法是,你让事情,在*XML配置文件环境(开发,测试,生产)之间的差异,并通过使用不同的配置文件,您可以切换环境。
但是,这绝对不是用bean的配置,定义复杂的测试数据结构很好的做法。有人可能会这样做,而新的倾向于依赖注入,只是因为它是可能的。
+1 ...所以可以在*XML配置文件中保留需要“可移植”的内容,而不使用bean来定义复杂的测试数据结构? – Gugussee 2011-01-25 15:27:49
红利问题:有没有一种方法可以轻松地在项目中找到所有这些破坏的“XML in XML”,除了运行所有的单元测试,看看哪些失败,然后漂洗和重复?
Spring Tool Suite或Eclipse的Spring插件可以检查弹簧配置文件是否正确(具有所有构造函数参数并且不使用未知的setter)。
+1,太棒了......我会尽量习惯可以验证Spring配置文件的Eclipse/Spring Too Suite工具。 – Gugussee 2011-01-25 15:28:35
我想用弹簧工作时,你应该使用SpringSource的工具。您可以下载它无论是作为独立或作为Eclipse插件:
(*)和写作:假 构造 - 精氨酸>为“假'对我来说看起来不是一个很好的理由...... –
Gugussee
2011-01-25 14:43:34