【发布时间】:2017-04-24 07:41:49
【问题描述】:
我无法关注 FP。当人们说“更惯用的风格”时,我必须明白:99% 的 Java 库不适用于 Kotlin 和 Scala 的 FP 惯用风格,对吧?好吧,我需要 Spring Boot 来快速启动 Vaadin。所以我需要注入一些豆子。
package com.x.ui
import com.vaadin.icons.VaadinIcons
import com.vaadin.navigator.Navigator
import com.vaadin.ui.MenuBar
fun createMenuBar(navigator: Navigator): MenuBar {
val menuBar = MenuBar()
menuBar.setHeight(null)
menuBar.setWidth(null)
menuBar.addItem("Dashboard", VaadinIcons.COG,
{ navigator.navigateTo("Dashboard") } as MenuBar.Command)
return menuBar
}
那么在这种情况下我如何将SpringNavigator 注入到这个函数中呢?
由于到目前为止我有几个顶级函数,我没有 @Component 也没有 @Bean ,在 Kotlin 中使用 Spring IoC 的惯用方式是什么?我仅限于使用类还是我们有技巧可以做到这一点?
【问题讨论】:
-
顶级函数等价于 Java 静态方法。我不确定这是否有意义,或者将依赖项注入它们是否是一种好习惯。作为一种良好的做法,恕我直言,我建议您将这些函数放在使用依赖注入配置的类中。
标签: spring dependency-injection functional-programming inversion-of-control kotlin