/** * Creates a new {@link ProjectingMessageConverter} using the given {@link ObjectMapper}. * @param mapper must not be {@literal null}. */ public ProjectingMessageConverter(ObjectMapper mapper) { Assert.notNull(mapper, "ObjectMapper must not be null"); JacksonMappingProvider provider = new JacksonMappingProvider(mapper); MethodInterceptorFactory interceptorFactory = new JsonProjectingMethodInterceptorFactory(provider); SpelAwareProxyProjectionFactory factory = new SpelAwareProxyProjectionFactory(); factory.registerMethodInvokerFactory(interceptorFactory); this.projectionFactory = factory; this.delegate = new StringJsonMessageConverter(mapper); }
/** * Creates a new {@link SpelAwareProxyProjectionFactory} with the {@link JsonProjectingMethodInterceptorFactory} * registered for the given {@link ObjectMapper}. * * @param mapper must not be {@literal null}. * @return */ private static SpelAwareProxyProjectionFactory initProjectionFactory(ObjectMapper mapper) { Assert.notNull(mapper, "ObjectMapper must not be null!"); SpelAwareProxyProjectionFactory projectionFactory = new SpelAwareProxyProjectionFactory(); projectionFactory .registerMethodInvokerFactory(new JsonProjectingMethodInterceptorFactory(new JacksonMappingProvider(mapper))); return projectionFactory; }