在静态对象上下文中使用Spring的Scala 2.13失败了吗?

时间:2019-08-20 09:01:04

标签: spring scala spring-bean scala-2.13

我正在将软件从Scala 2.12.8升级到2.13.0,发现尝试使用Spring在2,12,8正常运行的Bean注入时出现了一种奇怪的行为。

要将所有人都放在同一页上,这是为了重现而进行的简短测试:

TestUp scala类

@Service
class TestUp {

  val value: String = "test"

}

知道bean配置已经在映射上面的类的包,我尝试这样做:

Scala类:

class LoginHandler extends SimpleUrlAuthenticationSuccessHandler {

   @Autowired
   val test: TestUp = null

}

扩展Spring类SimpleUrlAuthenticationSuccessHandler会执行我的身份验证逻辑,但是我简化了场景以说明该类在Spring上下文中。

当工作流通过此类时,我可以完美地注入“测试”对象。

现在出现了实际问题,当我尝试将相同的TestUp bean注入scala静态对象时,它根本不起作用。例如:

object tests {

  @Autowired
  val test: TestUp = null

}

所以在这里我没有显式错误,但是对象“ test”永远保持空值。当我向不从任何Spring类扩展也没有任何Spring注释的类中进行注入时,也会发生同样的情况!

这在以前的scala(2.12.8)上有效,但是在升级后它不再起作用。在升级说明中我没有找到任何关于此的信息。

通过我的Spring核心版本为4.2.9.RELEASE

我猜测是因为静态对象现在不再具有spring上下文,但是我不确定,我也不知道如何解决。

所以我的问题是,为什么它不再起作用以及如何解决(或克服)它?

0 个答案:

没有答案