我有一个需要使用很少依赖项的自定义转换器。

由于转换器由 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)并从任何需要的地方使用它。

10-06 06:22