1

新しい DateTimeFormatter を Bean として作成し、それを別の Bean に渡したいと考えています。

これは私がコードでそれを行う方法です...

DateTimeFormatter formatter = DateTimeFormat.forPattern("blah");

しかし、Spring でフォーマッタを初期化するにはどうすればよいですか?

役立つ回答に触発されて私が思いついた解決策は次のとおりです

<bean id="dateFormatter" class="org.joda.time.format.DateTimeFormat" factory-method="forPattern">
  <constructor-arg value="blah"/>
</bean>
4

1 に答える 1

1

Springを使用してからしばらく経ちましたが、次のようになります。

DateTimeFormatterインターフェイスから拡張されていないため(Jodaのものへの参照のみが見つかりました)、それを使用するものはすべて、型を正確に参照する必要があります。これは、依存性注入のメリットが得られないことを意味します(フォーマッターを使用するものは、フォーマッターの正確なタイプと緊密に結合されているため)。それで、あなたは本当にこれをしたいですか?

あなたがそうすると仮定して、ドキュメンテーションから、セクション4.3.2.2以降を見てください、そしてそれはあなたにBeanを作成するすべての方法を与えます。静的メソッドを介してフォーマッターを作成し、それを使用するコンストラクターに渡すことができます(コンストラクターインジェクション、セクション4.4.1.1)

于 2012-05-30T00:16:40.560 に答える