当我从 C# 转向 Scala 时,我几乎没有使用过著名的 DI 框架,但我已经阅读过它们,并且最近意识到 cake pattern在 Scala 中。
但是,正如链接中所述,蛋糕模式不允许我们控制组件初始化的顺序。
对我来说,只有当组件在初始化时需要彼此时,这才重要,这似乎有点设计缺陷:)
在什么情况下需要有序初始化,并且无法通过负责初始化的单独组件上下文来解决?
最佳答案
丹尼尔·斯皮瓦克 (Daniel Spiewak) 在他的演讲“黑湖的面包店”中展示了一些解决该特定问题的方法。
幻灯片 -> https://dl.dropbox.com/u/1679797/NE%20Scala/Bakery%20from%20the%20Black%20Lagoon.pdf
视频-> http://www.youtube.com/watch?feature=player_embedded&v=yLbdw06tKPQ
摘自演讲:
您可以通过使用lazy val或def而不是val来解决空指针异常, 以可能出现僵局为代价。
关于spring - 有序初始化是依赖注入(inject)泛化/框架的要求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778631/