【问题标题】:Static Fields + Autowiring in SpringSpring 中的静态字段 + 自动装配
【发布时间】:2011-10-05 05:46:37
【问题描述】:

我们可以在 spring 控制器中自动装配静态字段吗?

例如:

@Autowired
    public static JNDIEMailSender jNDIEmailSender;

【问题讨论】:

  • 如果您将全局状态(静态变量)与 Spring 一起使用 - 您的设计一定有问题

标签: spring autowired


【解决方案1】:

不,我认为这行不通。您可以添加一个 setter 方法,使用 @Autowired 对其进行注释并在 setter 中设置静态字段。

@Autowired
void setJNDIEmailSender(JNDIEmailSender jndiEmailSender) {
  ClassName.jNDIEmailSender = jndiEmailSender
}

【讨论】:

  • 同意 Denis...这是一个糟糕的设计...因为所有类都是单例...所以不需要静态类/方法...
  • 单例化与否取决于你的选择,所以不好一概而论。
【解决方案2】:

Spring 不会自动装配静态字段

【讨论】:

    猜你喜欢
    • 2018-12-19
    • 2015-06-03
    • 2012-06-11
    • 2015-07-28
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多