Mar*_*arc 3 config kotlin quarkus
在 quarkus Java 中,您可以通过在 application.properties 中定义配置属性来设置它。这可以在某些类中使用,如下所示:
@ApplicationScoped
public class SomeClass {
@ConfigProperty(name = "some.config")
String someConfig;
}
Run Code Online (Sandbox Code Playgroud)
如何在 Kotlin 中实现同样的目标?
与 Kotlin 的一对一转换将产生:
import org.eclipse.microprofile.config.inject.ConfigProperty
import jakarta.enterprise.context.ApplicationScoped
@ApplicationScoped
open class SomeClass {
@field:ConfigProperty(name = "some.config")
lateinit var someConfig: String
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您像这样使用构造函数注入,看起来会好得多:
import org.eclipse.microprofile.config.inject.ConfigProperty
import jakarta.enterprise.context.ApplicationScoped
@ApplicationScoped
open class SomeClass(@ConfigProperty(name = "some.config") val someConfig: String) {
}
Run Code Online (Sandbox Code Playgroud)
定义后,在其他类中使用:
import jakarta.ws.rs.GET
import jakarta.ws.rs.Path
import jakarta.ws.rs.Produces
import jakarta.ws.rs.core.MediaType
import jakarta.inject.Inject
import jakarta.enterprise.inject.Default
@Path("/hello")
class GreetingResource {
@Inject
@field: Default
lateinit var service: SomeClass
@GET
@Produces(MediaType.TEXT_PLAIN)
fun hello() = "Hello from " + service.someConfig
}
Run Code Online (Sandbox Code Playgroud)
或者再次使用构造函数注入:
import jakarta.ws.rs.GET
import jakarta.ws.rs.Path
import jakarta.ws.rs.Produces
import jakarta.ws.rs.core.MediaType
import jakarta.inject.Inject
import jakarta.enterprise.inject.Default
@Path("/hello")
class GreetingResource(
val service: SomeClass
) {
@GET
@Produces(MediaType.TEXT_PLAIN)
fun hello() = "Hello from " + service.someConfig
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |