我正在考虑为 slf4j 记录器使用 CDI 注入,所以我创建了一个生产者。
我将它注入到一个ApplicationScoped
可序列化的bean中:
@ApplicationScoped
public final class CurrentApplicationBean implements Serializable {
@Inject
private transient Logger logger;
}
它必须是瞬态的,因为它org.slf4j.Logger
是一个不扩展的接口Serializable
,但这意味着必须在反序列化后重新注入记录器。
我认为 CDI 不能处理这个问题,你知道什么?
此外,提供者总是提供一个新Logger
实例,因为它必须从 设置记录器名称InjectionPoint
,这意味着RequestScoped
bean 有自己的记录器实例,而不是每个类记录器的静态记录器。
也许日志记录不是 CDI 注入的好上下文……您有什么考虑?