2016-04-26 8 views
3

私は春のブートアプリケーションでカスタマイズされたObjectMapperを使用しています。また、JSON文字列としてDBに格納されているいくつかのフィールドにJPAコンバーターを使用しています。カスタムオブジェクトマッパーを自分のコンバータにオートワイヤリングする方法がわかりません。JPAコンバーターへの自動配線

@Convert(converter=AddressConverter.class) 
private Address address; 

そして、私のAddressConverterはAddressConverterObjectMapperをautowireする方法

class AddressConverter implements AttributeConverter<Address, String> { 

     @Autowire 
     ObjectMapper objectMapper; //How to do this? 
     ..... 
     ..... 
    } 

のですか? Spring AOPでこれを行う方法はありますか?

答えて

6

たぶん、あなたはこのような静的プロパティでそれを行うことができます。

@Component 
class AddressConverter implements AttributeConverter<Address, String> { 

    private static ObjectMapper objectMapper; 

    @Autowire 
    public void setObjectMapper(ObjectMapper objectMapper){ 
     AddressConverter.objectMapper = objectMapper 
    } 
    ..... 
    ..... 

}

+0

これは私のために仕事をしました。私は注釈 '@ Converter'を追加して、コンバータが他のどこかでautowiredされていることを確認しなければなりませんでしたので、スプリングが実際にそれを初期化しました。 – n0daft

+0

私はこれを試しても動作しません。 n0daftの提案も試しましたが、フィールドは常にnullです。 –

+0

Spring Data JPAプロジェクトにも問題がありますが、何らかのオーバーライドconvertters.addメソッドがあるはずですが、それでも問題の状態になっています。 – kensai