Annotation Type JsonComponent


@Target(TYPE) @Retention(RUNTIME) @Documented @Component public @interface JsonComponent
@Component that provides JsonSerializer, JsonDeserializer or KeyDeserializer implementations to be registered with Jackson when JsonComponentModule is in use. Can be used to annotate implementations directly or a class that contains them as inner-classes. For example:
 @JsonComponent
 public class CustomerJsonComponent {

     public static class Serializer extends JsonSerializer<Customer> {

         // ...

     }

     public static class Deserializer extends JsonDeserializer<Customer> {

         // ...

     }

 }

 
Since:
1.4.0
Author:
Phillip Webb, Paul Aly
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    The various scopes under which a serializer/deserializer can be registered.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    The scope under which the serializer/deserializer should be registered with the module.
    Class<?>[]
    The types that are handled by the provided serializer/deserializer.
    The value may indicate a suggestion for a logical component name, to be turned into a Spring bean in case of an autodetected component.
  • Element Details

    • value

      The value may indicate a suggestion for a logical component name, to be turned into a Spring bean in case of an autodetected component.
      Returns:
      the component name
      Default:
      ""
    • type

      Class<?>[] type
      The types that are handled by the provided serializer/deserializer. This attribute is mandatory for a KeyDeserializer, as the type cannot be inferred. For a JsonSerializer or JsonDeserializer it can be used to limit handling to a subclasses of type inferred from the generic.
      Returns:
      the types that should be handled by the component
      Since:
      2.2.0
      Default:
      {}
    • scope

      The scope under which the serializer/deserializer should be registered with the module.
      Returns:
      the component's handle type
      Since:
      2.2.0
      Default:
      VALUES