View Javadoc
1   package top.infra.jackson2;
2   
3   import com.fasterxml.jackson.databind.ObjectMapper;
4   
5   import org.springframework.boot.autoconfigure.AutoConfigureBefore;
6   import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
7   import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
8   import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
9   import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
10  import org.springframework.boot.context.properties.EnableConfigurationProperties;
11  import org.springframework.context.annotation.Bean;
12  import org.springframework.context.annotation.Configuration;
13  
14  import java.util.List;
15  
16  @AutoConfigureBefore({JacksonAutoConfiguration.class})
17  @ConditionalOnClass({ObjectMapper.class})
18  @ConditionalOnWebApplication
19  @Configuration
20  @EnableConfigurationProperties({Jackson2Properties.class})
21  public class Jackson2AutoConfiguration {
22  
23      @Bean
24      public DefaultJackson2Customizer defaultJackson2Customizer() {
25          return new DefaultJackson2Customizer();
26      }
27  
28      @Bean
29      @ConditionalOnMissingBean(DefaultJackson2ObjectMapperBuilderCustomizer.class)
30      public DefaultJackson2ObjectMapperBuilderCustomizer defaultJackson2ObjectMapperBuilderCustomizer(
31          final List<Jackson2Customizer> customizers,
32          final Jackson2Properties properties
33      ) {
34          return new DefaultJackson2ObjectMapperBuilderCustomizer(customizers, properties);
35      }
36  }