So erstellen Sie eine Anmerkung, eine Gruppe von Jackson-Anmerkungen?
Einem Jahr oder so, Las ich einen Artikel, der erklärt, wie ich es schaffen könnte, eine Anmerkung, die im Grunde ist ein container für andere Anmerkungen. Auf diese Weise, wenn ich immer die gleichen 5 Anmerkungen in einem bestimmten use-case erstelle ich eine Anmerkung, die Sie enthält, und verwenden, statt.
Kann ich leider nicht, finde den Artikel nicht mehr und würde wirklich gerne tun, dass richtige jetzt für meine jackson-Konfiguration.
Da ich kann nicht finden alle Informationen auf, dass auf meinem eigenen ich bin zu Beginn Frage ich mich erinnern kann. Ist das möglich oder bin ich nur falsch???
BEARBEITEN
Was ich will, ist so etwas wie:
@Target(ElementType.METHOD)
@com.fasterxml.jackson.databind.annotation.JsonSerialize(using=MySerializerThatIsUsedEverywhere.class
@javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(MyCustomXmlAdapter.class)
@SomeOtherEvaluatedByTheSerializer
public @interface SerializerUseCase01 {
public String a();
public int b();
)
mein Szenario ist, dass ich habe eine Reihe von Serialisierung verwenden Fälle können behandelt werden, indem die gleichen serializer mit verschiedenen configs. Um alles einfacher zu machen zu verwenden und mehr Transparenz, die ich wrappen will die jackson-config und den serializer config in einer annotation.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jackson, diese kann getan werden, mit
@JacksonAnnotationsInside
meta-annotation. Sehen dieser Artikel für mehr, aber code-snippet von dort aus ist:und von da an können Sie diese Art für Ihre eigenen Klassen wie folgt:
@JacksonAnnotationsInside
? Gibt es so etwas wie groovy das meta-Annotationen (groovy.transform.AnnotationCollector
)? In Groovy-Dokumentation heißt es, dassINFO: Meta-annotations are a Groovy feature only. There is no chance for you to annotate a Java class with a meta-annotation and hope it will do the same as in Groovy. Likewise, you cannot write a meta-annotation in Java: both the meta-annotation definition and usage have to be Groovy code.
, aber da funktioniert dann gibt es einige Möglichkeiten.JacksonAnnotationsInside
ist es wirklich möglich zu definieren, "Aliase" durch das überschreiben einer Methode inJacksonAnnotationIntrospector
, die verantwortlich ist für die Erkennung von Annotationen-bundles.@JacksonAnnotationsInside
sonst jackson ignoriert jackson-spezifische Anmerkungen Hinzugefügt. Ich habe versucht@Inherited
und es hat nicht funktioniert.Gibt es einige Beispiele hier auf, wie verschiedene Kombinationen von Anmerkungen mit anderen Anmerkungen. Ist es das, was du suchst?
Beispiel aus der Quelle:
Wie folgt verwendet:
SerializerUseCase01
zu werden, so etwas wie ein alias für eine Reihe von anderen (verborgenen, wie eine Implementierung detail) Schnittstellen, ist das richtig?@Target({ElementType.ANNOTATION_TYPE,...}
.