51 lines
2.1 KiB
Java
51 lines
2.1 KiB
Java
package io.gisbi.jackson;
|
||
|
||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||
import com.fasterxml.jackson.core.StreamReadConstraints;
|
||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
||
import org.springframework.context.annotation.Bean;
|
||
import org.springframework.context.annotation.Configuration;
|
||
import org.springframework.context.annotation.Primary;
|
||
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
||
|
||
@Configuration
|
||
public class JacksonConfig {
|
||
|
||
@Bean
|
||
@Primary
|
||
@ConditionalOnMissingBean(ObjectMapper.class)
|
||
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
|
||
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
|
||
/*SimpleModule simpleModule = new SimpleModule();
|
||
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
|
||
objectMapper.registerModule(simpleModule);*/
|
||
objectMapper.setDefaultPropertyInclusion(JsonInclude.Include.ALWAYS);
|
||
return objectMapper;
|
||
}
|
||
|
||
@Bean
|
||
public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {
|
||
return new Jackson2ObjectMapperBuilder()
|
||
.serializerByType(Long.TYPE, new ToStringSerializer())
|
||
.serializerByType(Long.class, new ToStringSerializer());
|
||
}
|
||
|
||
@Bean
|
||
public Jackson2ObjectMapperBuilderCustomizer customJackson() {
|
||
return jacksonObjectMapperBuilder -> {
|
||
// 增大最大字符串长度限制到 350000000(或根据需要设置)
|
||
StreamReadConstraints constraints = StreamReadConstraints.builder()
|
||
.maxStringLength(35000000) // 设置更大的限制值
|
||
.build();
|
||
|
||
jacksonObjectMapperBuilder.postConfigurer(objectMapper ->
|
||
objectMapper.getFactory().setStreamReadConstraints(constraints)
|
||
);
|
||
};
|
||
}
|
||
|
||
}
|