0

さまざまなチュートリアルを見て、いくつか読んだ後、春にコンストラクター引数を使用する方法を理解しました。問題ありません。私の問題は、誰かが説明したり、それらが使用される理由を説明している資料を教えてくれたりすることです。つまり、確かに次のような構文で: <constructor-arg value="threading"></constructor-arg>、ハードコードされた値は悪い習慣ですか? それを行う方法に関する春の記事は必要ありません。ここでハードコーディングが一見問題ないように見える理由、またはより良い解決策を説明する簡単な答えが必要です。次のような行の必要性を取り除く @Resource アノテーションを認識していますが、<property name="answer" ref="answer"></property>ハードコーディングは悪い考えであり、たとえばDBからプルすることはより良い解決策であると常に教えられてきました

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

1 に答える 1

0

これはハードコーディングではありません...あなたが何を意味するのかを理解するのに少し時間がかかりましたが、このwiki記事をチェックしてください:

http://en.wikipedia.org/wiki/Hard_coding

XML は外部化されたデータ ソースとして機能するため、コンストラクター/プロパティ インジェクションの値を XML のリテラルとして提供することで、ハード コーディングを行う必要はありません。実際には、これはどこかの DB のフィールドの値と同じです。XML で変更した場合、コードを再コンパイルして機能させる必要はありません。

于 2014-11-13T16:08:18.250 に答える