看了各种教程并做了一些阅读后,我明白了如何在spring中使用构造函数参数。没问题。
我的问题是,有人可以解释或指出一些材料,它解释了为什么使用它们。我的意思是什么,肯定是这样的语法:<constructor-arg value="threading"></constructor-arg>
,硬编码的值是不好的做法?
我不想要任何关于如何做的关于春天的文章。我只需要一个简单的答案来解释为什么硬编码在这里似乎没问题或更好的解决方案。我知道@Resource注释摆脱了对<property name="answer" ref="answer"></property>
这样的行的需求,但我一直都认为硬编码是个坏主意,例如从数据库中提取是一个更好的解决方案
<bean id="questions" class="main.Questions">
<constructor-arg value="0000"></constructor-arg>
<constructor-arg value="What is the question?"></constructor-arg>
<constructor-arg value="threading"></constructor-arg>
<property name="correctAnswer" value="deadlock"></property>
</bean>
答案 0 :(得分:0)
这不是硬编码...我花了一点时间弄清楚你的意思,但看看这篇wiki文章:
http://en.wikipedia.org/wiki/Hard_coding
通过在XML中提供构造函数/属性注入值作为文字,您不是硬编码,因为XML充当外部化数据源。实际上,这与某个DB中的字段中的值没有什么不同。如果在XML中修改它,则无需重新编译代码即可使其正常工作。