Spring boot 如何编写处理字段的自定义注释

Spring boot 如何编写处理字段的自定义注释,spring-boot,jackson,annotations,Spring Boot,Jackson,Annotations,我正在钻研注释,希望有人能给我指出正确的方向 我想创建一个注释,当字符串值从JSON映射到POJO时,它将能够修剪字符串值 我不知道该怎么做 i、 e 谢谢你的回答,我现在就试试。想知道@JacksonAnnotation和@JacksonAnnotationsInside有什么区别吗?我不确定@JacksonAnnotation是什么,但是,@JacksonAnnotationsInside向Jackson发出信号,@Trim注释本身带有Jackson注释,无论在哪里应用@Trim,都应遵守这

我正在钻研注释,希望有人能给我指出正确的方向

我想创建一个注释,当字符串值从JSON映射到POJO时,它将能够修剪字符串值

我不知道该怎么做

i、 e


谢谢你的回答,我现在就试试。想知道@JacksonAnnotation和@JacksonAnnotationsInside有什么区别吗?我不确定
@JacksonAnnotation
是什么,但是,
@JacksonAnnotationsInside
向Jackson发出信号,
@Trim
注释本身带有Jackson注释,无论在哪里应用
@Trim
,都应遵守这些注释
@trim
private String referenceField;
@JacksonAnnotationsInside
@Retention(RUNTIME)
@Target(FIELD)
@JsonDeserialize(using = StringStripDeserializer.class)
public @interface @Strip {}

class StringStripDeserializer extends StdDeserializer<String> {

   @Override 
   public Date deserialize(JsonParser parser, DeserializationContext context) 
      throws IOException, JsonProcessingException { 
      String text = parser.getText();
      return text != null ? text.strip : null;
   }
   ...
}
    @Bean
    public Module stringStripModule() {
        SimpleModule module = new SimpleModule();
        module.addDeserializer(String.class, (JsonParser jsonParser, DeserializationContext deserializationContext) => {
            String string = super.deserialize(jsonParser, deserializationContext);
            return Objects.nonNull(string) ? string.strip() : null;
        });
        return module;
    }