我有一个Page
小门@SpringBean
class ScreenDetailsPage(parameters: PageParameters) extends BasePage(parameters) {
@SpringBean(name = "screenDAO") protected var screenDao: DAO[Screen] = null
assertNotNull(screenDao)
而且我发现@SpringBean未填充。如果
screenDao
是val或var,protected或private,则没有区别。查找该树,我发现
Component
的构造函数(间接)代表其子类初始化@SpringBean
,但是为null赋值则将其初始化。但是Scala需要分配。我如何防止这种行为?
最佳答案
尝试
class ScreenDetailsPage(parameters: PageParameters) extends BasePage(parameters) {
@SpringBean(name = "screenDAO") protected var screenDao: DAO[Screen] = _
assertNotNull(screenDao)
我没有尝试过,但是我也在考虑启动Wicket / Scala项目,并看到了this blog entry,它在其他方面也可能有用。
该博客引用的相关部分是
另外,请注意,该字段已分配给下划线(_),这告诉Scala编译程序不进行初始化,但将其保留为默认状态(在这种情况下为null)。这是注射工作所必需的。如果将其明确分配为null,则表示
将覆盖Spring bean,因为将在执行MyPage的构造函数之前进行注入。