我们如何使用自动重新加载?
试图利用自动模块重新加载功能(如此处所述),但不幸的是文档不是太有用。
它说使用配置,但配置页面是空的。
我相信你可以从这个页面传入“监视”模块列表到embeddedServer()
调用,但是当我这样做,我得到以下异常: Module function provided as lambda cannot be unlinked for reload
。
所以它不会让你传入一个lambda作为一个应用程序模块,但是我不确定如何避免这样做,而访问Application
方法(如routing()
)。
有没有人能够最近自动重新加载工作? 如果是这样,怎么样?
Lambda可能会从包含函数中捕获状态,因此无法重新加载 – 无法恢复捕获的状态。 你必须提取应用程序到一个单独的功能,如下所示:
fun Application.module() { install(CallLogging) install(Routing) { get("/") { call.respondText("""Hello, world!<br><a href="/bye">Say bye?</a>""", ContentType.Text.Html) } … } }
然后用函数引用来启动它:
embeddedServer(Jetty, watchPaths = listOf("embedded"), module = Application::module).start()
- Kotlin中的Wicket NumberTextField在提交时抛出ClassCastException
- 在Android Databinding中绑定ObservableList的大小
- 如何从字符串转换为Kotlin类的接口/类?
- Kotlin Builder vs构造函数
- 当使用kotlin找不到文件时,如何从URL.readText()中获取错误
- Kotlin类型推断失败 – 类型不匹配“Found Array <*?>,必需数组<*>?”
- 如何在Kotlin中构建兼容的参数/结果类型的函数?
- 不能与kotlin和tornadofx一起使用fontawesomefx
- 从Kotlin使用Kovenant我不断使用延迟重复代码