Javalin 从 3 到 4 的迁移
Javalin Migration from 3 to 4
我们正在将我们当前的 kotlin 项目中的 Javalin 从 3 迁移到 4。 dynamicGzip 已被弃用并替换为压缩策略。
pom.xml 部分如下所示。
<properties>
<javalin.version>4.1.1</javalin.version>
<jackson.version>2.13.0</jackson.version>
</properties>
kotlin的代码部分如下
import io.javalin.Javalin
import io.javalin.apibuilder.ApiBuilder.*
import io.javalin.http.BadRequestResponse
import io.javalin.http.NotFoundResponse
import io.javalin.http.staticfiles.Location
import io.javalin.plugin.json.JavalinJackson
import io.javalin.core.compression.*
val app = Javalin.create { config ->
config.defaultContentType = "application/json"
config.enableWebjars()
config.addStaticFiles("", Location.CLASSPATH)
config.enableCorsForAllgOrigins()
//it.dynamicGzip = true // deprecated method which was used in 3.12.0
config.compressionStrategy(Gzip(6))
}
我们正在使用此 link 中的迁移文档
https://javalin.io/migration-guide-javalin-3-to-4
当我们尝试使用此更改在 intelij Idea 中构建项目时,出现以下错误。
D:\app\src\main\kotlin\app\app.kt:78:40
Kotlin: Unresolved reference: Gzip
我们在这里缺少什么?
此外,如果 config.addStaticFiles 语法也添加到 javalin 4
中,这将很有帮助
压缩
JavalinConfig
class的compressionStrategy
方法有两个参数:
void compressionStrategy(Brotli brotli, Gzip gzip)
请参阅 Java文档 here。
相关 classes 可在 Javalin 此处找到:
import io.javalin.core.compression.Brotli;
import io.javalin.core.compression.Gzip;
所以,你可以在你的设置中做这样的事情(我的例子是 Java 而不是 Kotlin):
// my Java example:
config.compressionStrategy(new Brotli(6), new Gzip(6));
静态文件
您可以使用这样的东西(同样,Java 示例不是 Kotlin):
// my Java example:
config.addStaticFiles("/public", Location.CLASSPATH);
在这种情况下,因为我希望我的文件位于运行时 class 路径上,所以我还在应用程序的 resources
目录中创建了一个 public
目录。您的具体实施可能有所不同。
如果愿意,您也可以使用 Location.EXTERNAL
将文件放置在文件系统的其他位置(在应用程序之外)。
请注意 config.enableCorsForAllgOrigins()
中还有一个小错字。应该是:
config.enableCorsForAllOrigins()
我们正在将我们当前的 kotlin 项目中的 Javalin 从 3 迁移到 4。 dynamicGzip 已被弃用并替换为压缩策略。 pom.xml 部分如下所示。
<properties>
<javalin.version>4.1.1</javalin.version>
<jackson.version>2.13.0</jackson.version>
</properties>
kotlin的代码部分如下
import io.javalin.Javalin
import io.javalin.apibuilder.ApiBuilder.*
import io.javalin.http.BadRequestResponse
import io.javalin.http.NotFoundResponse
import io.javalin.http.staticfiles.Location
import io.javalin.plugin.json.JavalinJackson
import io.javalin.core.compression.*
val app = Javalin.create { config ->
config.defaultContentType = "application/json"
config.enableWebjars()
config.addStaticFiles("", Location.CLASSPATH)
config.enableCorsForAllgOrigins()
//it.dynamicGzip = true // deprecated method which was used in 3.12.0
config.compressionStrategy(Gzip(6))
}
我们正在使用此 link 中的迁移文档 https://javalin.io/migration-guide-javalin-3-to-4
当我们尝试使用此更改在 intelij Idea 中构建项目时,出现以下错误。
D:\app\src\main\kotlin\app\app.kt:78:40
Kotlin: Unresolved reference: Gzip
我们在这里缺少什么?
此外,如果 config.addStaticFiles 语法也添加到 javalin 4
中,这将很有帮助压缩
JavalinConfig
class的compressionStrategy
方法有两个参数:
void compressionStrategy(Brotli brotli, Gzip gzip)
请参阅 Java文档 here。
相关 classes 可在 Javalin 此处找到:
import io.javalin.core.compression.Brotli;
import io.javalin.core.compression.Gzip;
所以,你可以在你的设置中做这样的事情(我的例子是 Java 而不是 Kotlin):
// my Java example:
config.compressionStrategy(new Brotli(6), new Gzip(6));
静态文件
您可以使用这样的东西(同样,Java 示例不是 Kotlin):
// my Java example:
config.addStaticFiles("/public", Location.CLASSPATH);
在这种情况下,因为我希望我的文件位于运行时 class 路径上,所以我还在应用程序的 resources
目录中创建了一个 public
目录。您的具体实施可能有所不同。
如果愿意,您也可以使用 Location.EXTERNAL
将文件放置在文件系统的其他位置(在应用程序之外)。
请注意 config.enableCorsForAllgOrigins()
中还有一个小错字。应该是:
config.enableCorsForAllOrigins()