Spring JMS基础学习

一、JMS的两种消息种类:
1、点对点模型。一旦消息被某个消费者取走,它就不存在了,正在关注同一队列的其他消费者得不到这个消息。
2、订阅模型。一旦某个消息被发布,正在关注同一队列的所有消费者都可以得到这个消息。

二、发送JMS消息
1、使用模板,org.springframework.jms.core.JmsTemplate类的实例。
2、发送消息使用JmsTemplate.send(MessageCreator mc)实现,也可以使用该函数的其他重载。其中消息的创建方法为MessageCreator.createMessage(Session session)。
3、对于POJO一般采用MapMessage作为消息类型。
4、JmsTemplate自身可以设置的属性为connectionFactory和defaultDestination。一般这两个属性的对象可以通过JNDI得到。

三、消费JMS消息
1、同样使用模板,org.springframework.jms.core.JmsTemplate类的实例。
2、接收消息使用JmsTemplate.receive(String destinationName)实现,也可以使用该函数的其他重载。
3、默认情况下接收消息并消费消息(一般是把消息转换成对应的POJO实现业务逻辑)是同步的,为了避免接收消息阻塞,可设置JmsTemplate的receiveTimeout属性(毫秒)。
4、发送和消费消息的过程中,手工转换会造成代码的重复,可以给JmsTemplate的配置一个消息转换器,对应属性为messageConverter,实现类需要实现org.springframework.jms.support.converter.MessageConverter接口。Spring自己提供了一个该接口的实现类:org.springframework.jms.support.converter.SimpleMessageConverter。
5、经过消息转换器的配置,发送和接收消息大大简化:JmsTemplate.convertAndSend(yourObject)和JmsTemplate.receiveAndConvert(destQueueName)。

你可能感兴趣的:(spring)