与不同框架整合时mybatis的使用区别 (对比activeMQ,见其他类似标题两篇)

与不同框架整合时mybatis的使用区别 (对比activeMQ,见其他类似标题两篇)

一般mybatis或者redis,等连接数据库的框架以及activeMQ应用规则都差不多:

1,配置好工厂

2,工厂注入模版配置好模版(这时候其实已经可以直接通过这个模版操作了)

3,如果spring提供了人性话的封装这个模版的类,或其他框架可以人性化整合这个模版,就可以更方便的使用,不用每次都获取模版然后操作

  比如1,没有用封装的模版(就直接用模版)

      2,有框架对其封装了就用封装后的操作入口即可,更方便:

      用spring封装了模版(配置的时候将模版注入spring的一个类),或者spring集成的比如mapper,这个mapper会自动识别id=sqlSession的模版,

      那么也就有了封装,就不必每次使用模版操作了,直接用mapper提供的人性化的操作入口即可

      3,像active的发送端的集成模版的集成类是自己写的,那么用的时候按照自己的操作方法用即可,接收端由于是监听所以不需要模版只要把工厂

      集成在监听里面即可(同时监听也要指明接收类)

      <bean id="topicSendConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">

<!-- <property name="brokerURL" value="udp://10.0.1.216:8123" /> -->

<!-- UDP传输方式 -->

<property name="brokerURL" value="tcp://10.0.1.222:61616" />

<!-- TCP传输方式 -->

<property name="useAsyncSend" value="true" />

</bean>

<bean id="topicListenConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">

<!-- <property name="brokerURL" value="udp://10.0.1.216:8123" /> -->

<!-- UDP传输方式需要在activemq上面做配置 -->

<property name="brokerURL" value="tcp://10.0.1.222:61616" />

<!-- TCP传输方式 -->

</bean>

<!-- 定义主题 -->

<bean id="myTopic" class="org.apache.activemq.command.ActiveMQTopic">

<constructor-arg value="esteelChat-mq1" />

</bean>

<bean id="messageConvertForSys" class="com.esteel.chat.mq.MessageConvertForSys" />

<!-- TOPIC send jms模板 -->

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">

<property name="connectionFactory" ref="topicSendConnectionFactory" />

<property name="defaultDestination" ref="myTopic" />

<property name="messageConverter" ref="messageConvertForSys" />

<!-- 发送模式 DeliveryMode.NON_PERSISTENT=1:非持久 ; DeliveryMode.PERSISTENT=2:持久 -->

<property name="deliveryMode" value="1" />

<property name="pubSubDomain" value="true" />

<!-- 开启订阅模式 -->

</bean>

<!-- 消息发送方 -->

<bean id="topicSender" class="com.esteel.chat.mq.MessageSender">

<property name="jmsTemplate" ref="jmsTemplate" />

</bean>

<!-- <bean id="springContextUtil" class="com.esteel.common.SpringContextUtil" /> -->

    

<!-- 消息接收方 -->

<bean id="topicReceiver" class="com.esteel.chat.mq.MessageReceiver" />

<!-- 主题消息监听容器,一经注册,自动监听 -->

<bean id="listenerContainer"

class="org.springframework.jms.listener.DefaultMessageListenerContainer">

<property name="connectionFactory" ref="topicListenConnectionFactory" />

<property name="pubSubDomain" value="true" />

<!-- true 订阅模式 -->

<property name="destination" ref="myTopic" />

<!-- 目的地 myTopic -->

<property name="subscriptionDurable" value="true" />

<!-- -这里是设置接收客户端的ID,在持久化时,但这个客户端不在线时,消息就存在数据库里,直到被这个ID的客户端消费掉 -->

<property name="clientId" value="clientId_esteelChat_17" />

<property name="messageListener" ref="topicReceiver" />

</bean>

       

///////发送封装

public class MessageSender {

private JmsTemplate jmsTemplate;

public void sendMessage(String msg) {

jmsTemplate.convertAndSend(msg);

}

public JmsTemplate getJmsTemplate() {

return jmsTemplate;

}

public void setJmsTemplate(JmsTemplate jmsTemplate) {

this.jmsTemplate = jmsTemplate;

}

}

//接收监听

@Controller

public class MessageReceiver implements MessageListener {

@Autowired

TbConOrdService tbConOrdService;

@Autowired

TbConOrdPriceService tbConOrdPriceService;

@Autowired

TbConObjService tbConObjService;

@Autowired

RedisService redisService;

//@Autowired

//private TbConOrdMapper tbConOrdMapper;

public void onMessage(Message m) {

}}

相关推荐