5
C'è un modo per impostare HttpMessageConverter solo per determinati pacchetti nel mio progetto usando spring?Impostare un ObjectMapper diverso per determinati pacchetti Spring MVC
@Configuration
@EnableWebMvc
@ComponentScan(basePackageClasses = MyConfig.class)
public class MyConfig
extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
for (HttpMessageConverter<?> converter : converters) {
if (converter instanceof MappingJacksonHttpMessageConverter) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
objectMapper.setSerializationInclusion(Inclusion.NON_NULL);
((MappingJacksonHttpMessageConverter) converter).setObjectMapper(objectMapper);
}
}
}
Usando questo PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
, cambia tutte le risposte a progetto e voglio che questo di applicare solo in qualche dto.
Sarebbe bello se potessi mettere un'annotazione a package.info con PropertyNamingStrategy: D – nachokk
Non sono sicuro che sia possibile. Idea: aggiungi la tua estensione di 'MappingJacksonHttpMessageConverter' che sovrascrive' canRead' e 'canWrite' solo per abbinare le classi in alcuni pacchetti. – hzpz