在Spring Boot(使用Java)中,我通常将缓存名称放在静态最终字符串中,如下所示:
let config = try Config()
try config.setup()
let drop = try Droplet(config)
try drop.setup()
drop.get(handler: {req in
if req.json != nil {
print("ass")
print(req.json!)
}
return "almaG"
})
但是,当我有一个带有这个缓存名称的java类并尝试在Kotlin缓存方法中使用时,Eclipse告诉我这不是"编译时常量"。有办法解决这个问题吗?
日食之外,一切都很顺利......
答案 0 :(得分:1)
这很奇怪,这绝对有用。您可能遇到配置问题。检查您的Kotlin插件和您的项目是否使用相同版本的Kotlin,不同版本通常会导致奇怪的编译错误。如果可能,请在两个地方使用最新版本。
这是我尝试过的在1.1.50
上运行得非常好的示例代码(这是废话,但它编译):
MyConstants.java
public class MyConstants {
public static final String MY_CACHE_NAME = "cache_name";
}
DemoApplication.kt
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
SpringApplication.run(DemoApplication::class.java, *args)
}
@Cacheable(MyConstants.MY_CACHE_NAME)
fun someFunction() {}