RMI uses synchronous communication, and JMS uses asynchronous communication.
There are two main concepts in JMS: The message broker and the destination (destination).
The disadvantage of synchronous communication, which can be solved by using JMS:
Run Apache-activemq-5.10.0-bin[1]\apache-activemq-5.10.0\bin\win32 under Activemq.bat to start the JMS service.
In order to eliminate redundant JMS code, such as establishing a connection, exception handling, etc., we should use Jmstemplate to send and receive messages.
Similar to JdbcTemplate, Jmstemplate captures check-time exceptions, encapsulates them, and throws them in the form of non-check exceptions.
Code to send the message:
@Component ("Producerserviceimpl") Public classProducerserviceimplImplementsProducerservice {Privatejmstemplate jmstemplate; Public voidSendMessage (Destination Destination,FinalString message) {jmstemplate.send (destination,NewMessagecreator () { PublicMessage CreateMessage (Session session)throwsjmsexception {returnsession.createtextmessage (message); } }); } Publicjmstemplate getjmstemplate () {returnjmstemplate; } @Resource Public voidsetjmstemplate (jmstemplate jmstemplate) { This. jmstemplate =jmstemplate; }}
Spring Consolidated JMS (i)-Basic article