【问题标题】:Spring - injection java.util classesSpring - 注入 java.util 类
【发布时间】:2018-03-03 23:29:13
【问题描述】:

我正在使用 Spring 进行 java.util 类注入。

我想知道,您是否在 Spring 的上下文中注册了您的 bean 类,例如 ScannerRandom

我想这个决定取决于你使用它的频率,对吧?

我应该考虑返回 bean 而不是创建新对象时的使用次数是多少?

【问题讨论】:

    标签: java spring


    【解决方案1】:

    您希望多个 bean 共享一个随机数源吗?如果是这样,那么 bean 需要注入一个随机数生成器 bean。

    不过建议在多线程程序中使用ThreadLocalRandom(为了更好的性能),而且在单线程程序中也没有什么坏处,所以一般建议使用它,即Random永远不应该是 Spring bean。

    但是,如果您需要使用种子随机数序列对代码进行单元测试,那么代码需要注入一个可以模拟的随机数 bean。

    但是请注意,这种随机数 bean 不是 Random 类本身,而是包装器/帮助器 bean。


    您是否希望多个 bean 共享一个 Scanner

    这个问题真的只有在命令行程序中才有意义,阅读System.in,在这种情况下答案是肯定的。

    【讨论】:

    • Scanner 作为 bean 共享仍然没有意义。如果您将这种类型的任何东西作为方法参数传递,您的程序将会更加理智。
    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 2015-02-20
    • 2017-10-10
    • 2014-02-17
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2018-03-01
    相关资源
    最近更新 更多