我有一个需要使用很少依赖项的自定义转换器。
由于转换器由 JPA 管理,我无法找到一种方法来从另一个组件(如依赖注入(inject)器)传递它的依赖项。有这样的方法吗?
@Converter
public class CompressingJsonConverter implements AttributeConverter<CompressedJson, Byte[]> {
private final Compressing compressing;
private final ObjectMapper objectMapper;
public CompressingJsonConverter() {
// I would like to inject those dependencies instead
compressing = new Compressing();
objectMapper = new ObjectMapper();
}
最佳答案
尝试使用静态字段。要么您的 DI 框架支持静态注入(inject)(我知道 Guice 和 Salta 支持),要么您必须在启动期间手动完成。考虑在实用程序类中注册注入(inject)器(Guice、Salta)或实例(JavaEE/CDI)并从任何需要的地方使用它。