package actionjackson.alternative; import com.fasterxml.jackson.databind.ObjectMapper; import com.jayway.jsonpath.Configuration; import com.jayway.jsonpath.Option; import com.jayway.jsonpath.spi.json.JacksonJsonNodeJsonProvider; import com.jayway.jsonpath.spi.json.JsonProvider; import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider; import com.jayway.jsonpath.spi.mapper.MappingProvider; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; import java.util.EnumSet; import java.util.Set; @SpringBootApplication public class BindingAlternativesApplication { public static void main(String[] args) { SpringApplication.run(BindingAlternativesApplication.class, args); } @Bean RestTemplate restTemplate(RestTemplateBuilder builder) { return builder.build(); } /** * Ensures that the json-path lib uses Jackson, with the Boot-provided {@link ObjectMapper}. */ @Bean Configuration.Defaults jsonPathGlobalConfig(ObjectMapper objectMapper) { var jsonProvider = new JacksonJsonNodeJsonProvider(objectMapper); var mappingProvider = new JacksonMappingProvider(objectMapper); var defaults = new Configuration.Defaults() { @Override public JsonProvider jsonProvider() { return jsonProvider; } @Override public MappingProvider mappingProvider() { return mappingProvider; } @Override public Set<Option> options() { return EnumSet.of(Option.SUPPRESS_EXCEPTIONS); } }; Configuration.setDefaults(defaults); return defaults; } }