In JMS, there are two types of destination: queues and topics. Each of these is associated with a specific messaging model, either point-to-point (for queues) or
publish-subscribe (for topics).

  Although JMS provides a standard API for all Java applications wishing to participate in asynchronous communication, it can be a little cumbersome to use.

Spring eliminates the need for JMS boilerplate code and exception-handling code and makes asynchronous messaging easier to use.