java - 在构造函数上注入(inject) java.util.Random

标签 java spring code-injection

我有一个带有这个构造函数的 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" />

它工作正常。但我当然更喜欢只做注释。

注入(inject) java.util.Random 的正确方法是什么?

谢谢。

最佳答案

你可以这样做:

@Autowired
public HiddenNumber(@Value("#{new java.util.Random()}") Random random, @Value("4")int maxNumberOfDigits) {
...
}

关于java - 在构造函数上注入(inject) java.util.Random,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15688677/

相关文章:

java - 在 java 中使用 Math.floor() 时可能会出现精度错误

Java - 将数字与字符串分开

java - 无法在 hadoop 上运行字数统计

java - Spring SearchQuery ElasticSearch 的每次点击得分

json - Spring ScopedProxy session Bean JSON 在 JSON 响应中导出 targetClass 详细信息

html - 网站中的 iframe 注入(inject)

javascript - 在 Casper JS(基于 Phantom JS)中,如何捕获 DOM 完成后加载的 JavaScript 错误?

java - 正则表达式,不允许两个连续的特殊字符,也不允许在开头和结尾

java - Spring如何 Autowiring session 作用域的bean?

javascript - 将 "with (...) {...}"中的关键文字声明到其中运行的沙箱代码是否安全?