【发布时间】:2021-03-02 17:40:19
【问题描述】:
假设我有一个接口Config
和两个实现这个接口的类:
class Config1: Config {
}
class Config2: Config {
}
我通过使用 Jackson 对 JSON 进行反序列化来创建其中一种实现,并希望在公共库中将其作为 CDI ApplicationScope bean 提供:
@Produces
@ApplicationScope
fun config: Config {
return mapper.readValue(json, Config)
}
现在我有两个应用程序,App1 依赖于 Config1 和 App2 依赖于 Config2。我想实现这样的行为,例如启动 App1 Config1 被注入或抛出异常,没有 bean 可以满足构造函数。不幸的是,这不起作用:
class App1 (val config: Config1) { }
有什么方法可以实现吗?或者我必须编写一个服务来进行实例检查?
【问题讨论】: