Java 不确定SpringBean中构造函数参数的概念

Java 不确定SpringBean中构造函数参数的概念,java,spring,spring-mvc,annotations,constructorargument,Java,Spring,Spring Mvc,Annotations,Constructorargument,在观看了各种教程并阅读了一些资料后,我了解了如何在spring中使用构造函数参数。没有问题。 我的问题是,是否有人能解释或向我指出一些材料,解释为什么使用它们。我的意思是,当然,对于这样的语法:,硬编码值是不好的做法? 我不想看到任何关于spring的文章。我只需要一个简单的答案来解释为什么硬编码在这里看起来不错或者更好的解决方案。我知道@Resource注释不需要像这样的行,但我一直被教导硬编码是一个坏主意,例如从数据库中提取是一个更好的解决方案 <bean id="questions"

在观看了各种教程并阅读了一些资料后,我了解了如何在spring中使用构造函数参数。没有问题。 我的问题是,是否有人能解释或向我指出一些材料,解释为什么使用它们。我的意思是,当然,对于这样的语法:
,硬编码值是不好的做法? 我不想看到任何关于spring的文章。我只需要一个简单的答案来解释为什么硬编码在这里看起来不错或者更好的解决方案。我知道@Resource注释不需要像
这样的行,但我一直被教导硬编码是一个坏主意,例如从数据库中提取是一个更好的解决方案

<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>

这不是硬编码。。。我花了一点时间才明白你的意思,但请看这篇维基文章:


通过在XML中以文本形式提供构造函数/属性注入值并不是硬编码,因为XML充当外部化数据源。实际上,这与DB someplace中字段中的值没有什么不同。如果在XML中对其进行修改,则无需重新编译代码即可使其正常工作

也许
Beans.xml
文件就是数据库?或者你应该这样想?我不确定(我是Spring的初学者)。让我更明确一点。现在看看我的问题,看看我放进去的豆子。构造函数参数具有值。现在,如果我想用@Resource注释替换它们,那么我将把这些值放在哪里?我不明白这与您的OP有什么关系。使用不同类型的依赖项注入与XML作为外部化数据源无关,因此不是硬编码。XML构造函数args的要点是,您可以更改XML中的值,并重新加载bean(可以重新启动,也可以通过其他方法),而无需重新编译代码。将此更改为使用@Resource注释是一个代码更改。。。有点像苹果和桔子。@RedBaron用一个SpEL表达式表示这个值。@MarkW我现在还处在一个新的阶段,我还不熟悉Spring,并正在研究它的概念和想法。我知道aResource不是Spring的一部分,但我已经了解了构造函数参数是如何工作的,所以现在我想看看如何摆脱构造函数参数,并且仍然保持我认为可能的值。是的,很抱歉偏离了原来的问题。我还使用了一个资源,因为stackoverflow不允许我使用另一个at符号