Я пытаюсь внедрить универсальный c сериализатор Spring Trim для всех приложений, но, похоже, он не работает. И если я вручную помещаю этот сериализатор @JsonSerialize(using = StringTrimmerSerializer.class)
в определенное поле, он работает, не зная, что мне нужно сделать, чтобы он работал во всем приложении, не помещая его для всех полей отдельно
import java.io.IOException;
import org.apache.commons.lang.StringUtils;
import org.springframework.boot.jackson.JsonComponent;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
@JsonComponent
public class StringTrimmerSerializer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (!StringUtils.isEmpty(value)) {
value = value.trim();
}
gen.writeString(value);
}
}
Обновление:
Пробовал также регистрировать сериализатор, но та же проблема
@Configuration
public class JacksonConfiguration {
@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper(); //
//mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);
mapper.registerModule(new SimpleModule().addSerializer(String.class, new StringTrimmerSerializer()));
return mapper;
}
/*
* @Bean public Module customSerializer() { SimpleModule module = new
* SimpleModule(); module.addSerializer(String.class, new
* StringTrimmerSerializer()); return module; }
*/
}
Пакет основного класса: com.demo
Пакет сериализатора: com.demo.config
Версия с загрузочной пружиной - 2.2.5.RELEASE
Jackson-databind - 2.10.2