3

このコンストラクターを持つクラス HiddenNumber があります。

public HiddenNumber(java.util.Random random, int maxNumberOfDigits) {
  /* some code */
}

私はDIの注釈を次のように使用しようとしています:

@Autowired
public HiddenNumber(@Value("T(java.util.Random") random, 
    @Value("4")int maxNumberOfDigits) {
  /* some code */
}

しかし、うまくいきません。私も試しました:

@Autowired
public HiddenNumber(@Value("#{T(java.util.Random}") random, 
    @Value("4")int maxNumberOfDigits) {
  /* some code */
}

私が行った場合:

@Autowired
public HiddenNumber(Random random, @Value("4") int maxNumberOfDigits) {
  /* some code */
}

そして、app-context.xml で次のことを行います。

<bean class="java.util.Random" />

それは正常に動作します。もちろん、私は注釈のみを行うことを好みます。

java.util.Randomを注入する正しい方法は何ですか?

ありがとう。

4

3 に答える 3

5

あなたはこれを行うことができます:

@Autowired
public HiddenNumber(@Value("#{new java.util.Random()}") Random random, @Value("4")int maxNumberOfDigits) {
...
}
于 2013-03-28T17:53:33.000 に答える
0

非常に単純なプログラムにこれが必要で、SpEL を使用して解決しました。

p: プレフィックスを使用するには、Bean タグにこのプロパティを含める必要があります: xmlns:p="http://www.springframework.org/schema/p"

于 2013-07-09T21:40:40.190 に答える
0

<constructor-arg>Spring の要素を使用することもできます。たとえば、constructor-arg フィールドまたはthis hereを使用して Spring Bean を設定するを参照してください。

于 2013-03-28T17:56:10.097 に答える