JacksonConfiguration.java 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package rocks.zipcode.io.config;
  2. import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module;
  3. import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
  4. import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
  5. import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.zalando.problem.ProblemModule;
  9. import org.zalando.problem.violations.ConstraintViolationProblemModule;
  10. @Configuration
  11. public class JacksonConfiguration {
  12. /**
  13. * Support for Java date and time API.
  14. * @return the corresponding Jackson module.
  15. */
  16. @Bean
  17. public JavaTimeModule javaTimeModule() {
  18. return new JavaTimeModule();
  19. }
  20. @Bean
  21. public Jdk8Module jdk8TimeModule() {
  22. return new Jdk8Module();
  23. }
  24. /*
  25. * Support for Hibernate types in Jackson.
  26. */
  27. @Bean
  28. public Hibernate5Module hibernate5Module() {
  29. return new Hibernate5Module();
  30. }
  31. /*
  32. * Jackson Afterburner module to speed up serialization/deserialization.
  33. */
  34. @Bean
  35. public AfterburnerModule afterburnerModule() {
  36. return new AfterburnerModule();
  37. }
  38. /*
  39. * Module for serialization/deserialization of RFC7807 Problem.
  40. */
  41. @Bean
  42. ProblemModule problemModule() {
  43. return new ProblemModule();
  44. }
  45. /*
  46. * Module for serialization/deserialization of ConstraintViolationProblem.
  47. */
  48. @Bean
  49. ConstraintViolationProblemModule constraintViolationProblemModule() {
  50. return new ConstraintViolationProblemModule();
  51. }
  52. }