Jackson2AutoConfiguration.java
package top.infra.jackson2;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.List;
@AutoConfigureBefore({JacksonAutoConfiguration.class})
@ConditionalOnClass({ObjectMapper.class})
@ConditionalOnWebApplication
@Configuration
@EnableConfigurationProperties({Jackson2Properties.class})
public class Jackson2AutoConfiguration {
@Bean
public DefaultJackson2Customizer defaultJackson2Customizer() {
return new DefaultJackson2Customizer();
}
@Bean
@ConditionalOnMissingBean(DefaultJackson2ObjectMapperBuilderCustomizer.class)
public DefaultJackson2ObjectMapperBuilderCustomizer defaultJackson2ObjectMapperBuilderCustomizer(
final List<Jackson2Customizer> customizers,
final Jackson2Properties properties
) {
return new DefaultJackson2ObjectMapperBuilderCustomizer(customizers, properties);
}
}