5
Gibt es eine Möglichkeit, einen HttpMessageConverter für nur bestimmte Pakete in meinem Projekt mit Feder zu setzen?Einen anderen ObjectMapper für ein bestimmtes Paket festlegen 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);
}
}
}
diesen PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
Mit ändert alle Antworten in Projekt und ich möchte dies nur in einiger dto anzuwenden.
Es wäre toll, wenn ich eine Anmerkung setzen könnte bei package.info mit PropertyNamingStrategy: D – nachokk
Ich bin mir nicht sicher, ob das möglich ist. Idee: Fügen Sie Ihre eigene Erweiterung von 'MappingJacksonHttpMessageConverter' hinzu, die' canRead' und 'canWrite' überschreibt, um nur Klassen in bestimmten Paketen zu entsprechen. – hzpz