Changes in 2.3 Since 2.2

This section describes the changes between version 2.2 and version 2.3. See Change History for changes in previous versions.

Connection Factory Changes

Two additional connection factories are now provided. See Choosing a Connection Factory for more information.

@RabbitListener Changes

You can now specify a reply content type. See Reply ContentType for more information.

Message Converter Changes

The Jackson2JMessageConverter s can now deserialize abstract classes (including interfaces) if the ObjectMapper is configured with a custom deserializer. See Deserializing Abstract Classes for more information.

Testing Changes

A new annotation @SpringRabbitTest is provided to automatically configure some infrastructure beans for when you are not using SpringBootTest. See @SpringRabbitTest for more information.

RabbitTemplate Changes

The template’s ReturnCallback has been refactored as ReturnsCallback for simpler use in lambda expressions. See Correlated Publisher Confirms and Returns for more information.

When using returns and correlated confirms, the CorrelationData now requires a unique id property. See Correlated Publisher Confirms and Returns for more information.

When using direct reply-to, you can now configure the template such that the server does not need to return correlation data with the reply. See RabbitMQ Direct reply-to for more information.

Listener Container Changes

A new listener container property consumeDelay is now available; it is helpful when using the RabbitMQ Sharding Plugin.

The default JavaLangErrorHandler now calls System.exit(99). To revert to the previous behavior (do nothing), add a no-op handler.

The containers now support the globalQos property to apply the prefetchCount globally for the channel rather than for each consumer on the channel.

See Message Listener Container Configuration for more information.

MessagePostProcessor Changes

The compressing MessagePostProcessor s now use a comma to separate multiple content encodings instead of a colon. The decompressors can handle both formats but, if you produce messages with this version that are consumed by versions earlier than 2.2.12, you should configure the compressor to use the old delimiter. See the IMPORTANT note in Modifying Messages - Compression and More for more information.

Multiple Broker Support Improvements

See Multiple Broker (or Cluster) Support for more information.

RepublishMessageRecoverer Changes

A new subclass of this recoverer is not provided that supports publisher confirms. See Message Listeners and the Asynchronous Case for more information.