Skip to content

Instantly share code, notes, and snippets.

@bademux
Created September 8, 2015 18:54
Show Gist options
  • Save bademux/8e084d56c7aae2283d66 to your computer and use it in GitHub Desktop.
Save bademux/8e084d56c7aae2283d66 to your computer and use it in GitHub Desktop.
@Configuration
public class JacksonConfig {
//TODO: Autoscan
final static Map<Class<?>, Class<?>> mixins = ImmutableMap.<Class<?>, Class<?>>builder()
.put(..., ...)
.build();
@Autowired
EntityManagerFactory emf;
@Autowired
RequestMappingHandlerAdapter requestMappingHandlerAdapter;
@PostConstruct
public void init() {
SessionFactory sessionFactory = emf.unwrap(SessionFactory.class);
Hibernate4Module module = new Hibernate4Module(sessionFactory)
.enable(Hibernate4Module.Feature.FORCE_LAZY_LOADING)
.disable(Hibernate4Module.Feature.USE_TRANSIENT_ANNOTATION);
List<HttpMessageConverter<?>> messageConverters = requestMappingHandlerAdapter.getMessageConverters();
final MappingJackson2HttpMessageConverter mc = getJacksonMessageConverter(messageConverters);
mc.getObjectMapper().setMixIns(mixins).registerModule(module);
}
static MappingJackson2HttpMessageConverter getJacksonMessageConverter(
final List<HttpMessageConverter<?>> converters) {
for (final HttpMessageConverter<?> converter : converters) {
if (converter instanceof MappingJackson2HttpMessageConverter) {
return (MappingJackson2HttpMessageConverter) converter;
}
}
return null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment