2014-01-09 6 views
0

특정 유형의 serialization을 사용하기 위해 jackson 모듈을 작성했습니다. 이제 새로운 시리얼 라이저 중 하나의 글로벌 구성을 가능하게하고 싶습니다. 그래서 나는 serializer 인스턴스에서 생성하는 동안 속성을 설정해야합니다.annotated serializers에 대한 인스턴스 생성에 영향을 미치는 방법

내가 잭슨 모듈에서 할 수있는 방법이 있습니까?

+0

구체적으로 수행하려는 작업을 좀 더 자세하게 설명 할 수 있습니까? – StaxMan

+0

시리얼 라이저'FubarSerializer'가 모든'Fubar' 인스턴스를 처리합니다. 이 인스턴스를 두 가지 방법 (A와 B)으로 직렬화 할 수 있습니다. 그 serializers의 무리가 모듈에 싸여있다. 모듈의 설정자와 함께 globaly 또는 A를 사용하는 경우 구성하려고합니다. – Laures

답변

0

모듈 인터페이스는 상태가없는 것 중 하나이므로, 추가하는 것에 영향을주는 기본 배선이 없습니다.

하지만 해결 방법은 해결 방법을 사용하는 것입니다. 가능성은 다음을 포함한다 :

  • ThreadLocal; serialization 전에 serializer에서 읽습니다.
  • "attributes"의 새로운 (Jackson 2.3) 기능을 사용합니다. 컨텍스트 개체 (SerializerProvider/DeserializationContext) 사용 사례에 대한이 작품의

그래서 희망 하나를 통해 시리얼 라이저/디시리얼라이저 액세스 (ObjectWriter.setAttribute())를 작성하고 (ObjectReader.setAttribute())을 읽는 사람들을 설정할 수 있습니다.