实战06_SSM整合ActiveMQ支持多种类型消息

接上一篇:企业实战05_SSM整合ActiveMQ支持多种类型消息https://blog.csdn.net/weixin_40816738/article/details/100572129

1、StreamMessage java原始值数据流
2、MapMessage 键值对
3、TextMessage 字符串
4、ObjectMessage 一个序列化的java对象
5、BytesMessage 一个字节的数据流

此文章为企业实战的展示操作,如果有地方不懂请留言,我看到后,会进行统一回复,让我们一起进步,为自己加油!!!

项目名项目说明
ssm-activemq父工程,统一版本控制
producer生产者
consumer消费者
base-pojo公共实体类
base-dao公共接口,数据库连接

文章目录

  • 六、消费者consumer
    • 6.1. 点对点场景
    • 6.1.1. 创建String类型监听
    • 6.1.2.创建List类型监听
    • 6.1.3. 创建Map类型监听
    • 6.1.4.创建obj类型监听
    • 6.2. 发布订阅场景
      • 6.2.1. 创建String类型监听
      • 6.2.2. 创建List类型监听
      • 6.2.3. 创建Map类型监听
      • 6.2.4. 创建Obj类型监听
    • 6.3. 在resources目录下创建spring文件夹
      • 6.3.1. 在spring文件夹下创建applicationContext-service.xml
      • 6.3.2. 在spring文件夹下创建applicationContext-trans.xml
      • 6.3.3. 在spring文件夹下创建spring-queue-consumer.xml
      • 6.3.4. 在spring文件夹下创建spring-topic-consumer.xml
      • 6.3.5. 在spring文件夹下创建spring-mvc.xml
      • 6.4. 在resouces文件夹下创建log4j.properties
      • 6.5. 在resouces文件夹下创建log4j.xml
      • 6.6. web.xml
    • 6.4 @Test点对点测试
    • 6.4.1 字符串类型消息
    • 6.4.2 List类型消息
    • 6.4.3 Map类型消息
    • 6.4.4 Obj类型消息
    • 6.5 @Test发布订阅测试
      • 6.5.1 字符串类型消息
      • 6.5.2 List类型消息
      • 6.5.3 Map类型消息
      • 6.5.4 Obj类型消息
    • 6.6 @Test数据库联通测试

六、消费者consumer

6.1. 点对点场景

6.1.1. 创建String类型监听

package com.gblfy.mq.listener;import org.springframework.stereotype.Component;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;/*** 监听类(用于生成网页)** @author Administrator*/
@Component
public class QueueStrListener implements MessageListener {//@Autowired//private XxService xxService;@Overridepublic void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {String text = textMessage.getText();System.out.println("接收到消息:" + text);//此处进行插入数据库操作//TODO} catch (JMSException e) {e.printStackTrace();}}
}

6.1.2.创建List类型监听

package com.gblfy.mq.listener;import org.springframework.stereotype.Component;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;/*** 监听类(用于生成网页)* @author Administrator**/
@Component
public class QueueListListener implements MessageListener {//@Autowired//private XxService xxService;@Overridepublic void onMessage(Message message) {TextMessage textMessage=(TextMessage)message;try {String text = textMessage.getText();System.out.println("接收到消息:"+text);//此处进行插入数据库操作//TODO} catch (JMSException e) {e.printStackTrace();}}}

6.1.3. 创建Map类型监听

package com.gblfy.mq.listener;import org.springframework.stereotype.Component;import javax.jms.*;/*** 监听类(用于生成网页)** @author Administrator*/
@Component
public class QueueMapListener implements MessageListener {//@Autowired//private XxService xxService;@Overridepublic void onMessage(Message message) {MapMessage mapMessage = (MapMessage) message;try {String mapKey = mapMessage.getString("mapKey");System.out.println("接收到消息:" + mapKey);//此处进行插入数据库操作//TODO} catch (JMSException e) {e.printStackTrace();}}
}

6.1.4.创建obj类型监听

package com.gblfy.mq.listener;import com.gblfy.mq.entity.User;
import org.springframework.stereotype.Component;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;/*** 监听类(用于生成网页)** @author Administrator*/
@Component
public class QueueObjListener implements MessageListener {//@Autowired//private XxService xxService;@Overridepublic void onMessage(Message message) {ObjectMessage objectMessage = (ObjectMessage) message;try {User user = (User) objectMessage.getObject();System.out.println("接收到消息:" + user.toString());//此处进行插入数据库操作//TODO} catch (JMSException e) {e.printStackTrace();}}}

6.2. 发布订阅场景

6.2.1. 创建String类型监听

package com.gblfy.mq.listener;import org.springframework.stereotype.Component;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;/*** 监听类(用于生成网页)** @author Administrator*/
@Component
public class TopicStrListener implements MessageListener {//@Autowired//private XxService xxService;@Overridepublic void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {String text = textMessage.getText();System.out.println("接收到消息:" + text);//此处进行插入数据库操作//TODO} catch (JMSException e) {e.printStackTrace();}}
}

6.2.2. 创建List类型监听

package com.gblfy.mq.listener;import org.springframework.stereotype.Component;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;/*** 监听类(用于生成网页)* @author Administrator**/
@Component
public class TopicListListener implements MessageListener {//@Autowired//private XxService xxService;@Overridepublic void onMessage(Message message) {TextMessage textMessage=(TextMessage)message;try {String text = textMessage.getText();System.out.println("接收到消息:"+text);//此处进行插入数据库操作//TODO} catch (JMSException e) {e.printStackTrace();}}}

6.2.3. 创建Map类型监听

package com.gblfy.mq.listener;import org.springframework.stereotype.Component;import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.MessageListener;/*** 监听类(用于生成网页)** @author Administrator*/
@Component
public class TopicMapListener implements MessageListener {//@Autowired//private XxService xxService;@Overridepublic void onMessage(Message message) {MapMessage mapMessage = (MapMessage) message;try {String mapKey = mapMessage.getString("mapKey");System.out.println("接收到消息:" + mapKey);//此处进行插入数据库操作//TODO} catch (JMSException e) {e.printStackTrace();}}
}

6.2.4. 创建Obj类型监听

package com.gblfy.mq.listener;import com.gblfy.mq.entity.User;
import org.springframework.stereotype.Component;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;/*** 监听类(用于生成网页)** @author Administrator*/
@Component
public class TopicObjListener implements MessageListener {//@Autowired//private XxService xxService;@Overridepublic void onMessage(Message message) {ObjectMessage objectMessage = (ObjectMessage) message;try {User user = (User) objectMessage.getObject();System.out.println("接收到消息:" + user.toString());//此处进行插入数据库操作//TODO} catch (JMSException e) {e.printStackTrace();}}}

6.3. 在resources目录下创建spring文件夹

6.3.1. 在spring文件夹下创建applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- spring自动去扫描base-pack下面或者子包下面的java文件--><!--管理Service实现类--><context:component-scan base-package="com.gblfy.mq.mapper,com.gblfy.mq.listener"/>
</beans>

6.3.2. 在spring文件夹下创建applicationContext-trans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"><!-- 事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 数据源 --><property name="dataSource" ref="dataSource" /></bean><!-- 通知 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!-- 传播行为 --><tx:method name="save*" propagation="REQUIRED" /><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="add*" propagation="REQUIRED" /><tx:method name="create*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="find*" propagation="SUPPORTS" read-only="true" /><tx:method name="select*" propagation="SUPPORTS" read-only="true" /><tx:method name="get*" propagation="SUPPORTS" read-only="true" /></tx:attributes></tx:advice><!-- 切面 --><aop:config><aop:advisor advice-ref="txAdvice"pointcut="execution(* com.gblfy.mq.*.*(..))" /></aop:config>
</beans>

6.3.3. 在spring文件夹下创建spring-queue-consumer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--公共部分 Start--><!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供--><bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"><property name="brokerURL"value="tcp://192.168.43.156:61616"/><property name="trustAllPackages" value="true"/><property name="userName" value="admin"/><property name="password" value="admin"/></bean><!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory --><bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"><!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory --><property name="targetConnectionFactory" ref="targetConnectionFactory"/></bean><!--公共部分 End--><bean id="queueStrListener" class="com.gblfy.mq.listener.QueueStrListener"/><bean id="queueMapListener" class="com.gblfy.mq.listener.QueueMapListener"/><bean id="queueListListener" class="com.gblfy.mq.listener.QueueListListener"/><bean id="queueObjListener" class="com.gblfy.mq.listener.QueueObjListener"/><bean id="QUEUE_Str" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="QUEUE_Str"/></bean><bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory"/><property name="destination" ref="QUEUE_Str"/><property name="messageListener" ref="queueStrListener"/></bean><bean id="QUEUE_Str_LIST" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="QUEUE_Str_LIST"/></bean><bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory"/><property name="destination" ref="QUEUE_Str_LIST"/><property name="messageListener" ref="queueListListener"/></bean><bean id="QUEUE_OBJ" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="QUEUE_OBJ"/></bean><bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory"/><property name="destination" ref="QUEUE_OBJ"/><property name="messageListener" ref="queueObjListener"/></bean><bean id="QUEUE_MAP" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="QUEUE_MAP"/></bean><bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory"/><property name="destination" ref="QUEUE_MAP"/><property name="messageListener" ref="queueMapListener"/></bean>
</beans>

6.3.4. 在spring文件夹下创建spring-topic-consumer.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--公共部分 Start--><!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供--><bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"><property name="brokerURL"value="tcp://192.168.43.156:61616"/><property name="trustAllPackages" value="true"/><property name="userName" value="admin"/><property name="password" value="admin"/></bean><!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory --><bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"><!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory --><property name="targetConnectionFactory" ref="targetConnectionFactory"/></bean><!--公共部分 End--><bean id="TOPIC_Str" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg value="TOPIC_Str"/></bean><bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory"/><property name="destination" ref="TOPIC_Str"/><property name="messageListener" ref="topicListListener"/></bean><bean id="TOPIC_Str_LIST" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg value="TOPIC_Str_LIST"/></bean><bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory"/><property name="destination" ref="TOPIC_Str_LIST"/><property name="messageListener" ref="topicListListener"/></bean><bean id="TOPIC_OBJ" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg value="TOPIC_OBJ"/></bean><bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory"/><property name="destination" ref="TOPIC_OBJ"/><property name="messageListener" ref="topicObjListener"/></bean><bean id="TOPIC_MAP" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg value="TOPIC_MAP"/></bean><bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory"/><property name="destination" ref="TOPIC_MAP"/><property name="messageListener" ref="topicMapListener"/></bean>
</beans>

6.3.5. 在spring文件夹下创建spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 扫描controller --><context:component-scan base-package="com.gblfy.mq.controller" /><!-- Spring 来扫描指定包下的类,并注册被@Component,@Controller,@Service,@Repository等注解标记的组件 --><mvc:annotation-driven /><!-- 配置SpringMVC的视图解析器--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean>
</beans>

6.4. 在resouces文件夹下创建log4j.properties

log4j.rootLogger=error,CONSOLE,A
log4j.addivity.org.apache=falselog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=error
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} -%-4r [%t] %-5p  %x - %m%n
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=gbk
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.A=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.A.File=${catalina.home}/logs/FH_log/PurePro_
log4j.appender.A.DatePattern=yyyy-MM-dd'.log'
log4j.appender.A.layout=org.apache.log4j.PatternLayout  
log4j.appender.A.layout.ConversionPattern=[FH_sys]  %d{yyyy-MM-dd HH\:mm\:ss} %5p %c{1}\:%L \: %m%n

6.5. 在resouces文件夹下创建log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><!-- Appenders --><appender name="console" class="org.apache.log4j.ConsoleAppender"><param name="Target" value="System.out" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{yyyy HH:mm:ss} %-5p %c - %m%n" /></layout></appender><!-- Application Loggers --><logger name="com"><level value="error" /></logger><!-- 3rdparty Loggers --><logger name="org.springframework.core"><level value="error" /></logger><logger name="org.springframework.beans"><level value="error" /></logger><logger name="org.springframework.context"><level value="error" /></logger><logger name="org.springframework.web"><level value="error" /></logger><logger name="org.springframework.jdbc"><level value="error" /></logger><logger name="org.mybatis.spring"><level value="error" /></logger><logger name="java.sql"><level value="error" /></logger><!-- Root Logger --><root><priority value="error" /><appender-ref ref="console" /></root></log4j:configuration>

6.6. web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5"><display-name>consumer-web</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 解决post乱码 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>ssm</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 指定加载的配置文件 ,通过参数contextConfigLocation加载--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/spring-mvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>ssm</servlet-name><url-pattern>/</url-pattern></servlet-mapping><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:/spring/applicationContext-*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener></web-app>

6.4 @Test点对点测试

6.4.1 字符串类型消息

package com.gblfy.mq.listener;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/spring-queue-consumer.xml")
public class QueueStrListenerTest {@Testpublic void onMessage() {try {System.in.read();} catch (IOException e) {e.printStackTrace();}}
}

6.4.2 List类型消息

package com.gblfy.mq.listener;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/spring-queue-consumer.xml")public class QueueListListenerTest {@Testpublic void onMessage() {try {System.in.read();} catch (IOException e) {e.printStackTrace();}}
}

6.4.3 Map类型消息

package com.gblfy.mq.listener;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/spring-queue-consumer.xml")
public class QueueMapListenerTest {@Testpublic void onMessage() {try {System.in.read();} catch (IOException e) {e.printStackTrace();}}}

6.4.4 Obj类型消息

package com.gblfy.mq.listener;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/spring-queue-consumer.xml")public class QueueObjListenerTest {@Testpublic void onMessage() {try {System.in.read();} catch (IOException e) {e.printStackTrace();}}
}

6.5 @Test发布订阅测试

6.5.1 字符串类型消息

package com.gblfy.mq.listener;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/spring-topic-consumer.xml")
public class TopicStrListenerTest {@Testpublic void onMessage() {try {System.in.read();} catch (IOException e) {e.printStackTrace();}}
}

6.5.2 List类型消息

package com.gblfy.mq.listener;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/spring-topic-consumer.xml")
public class TopicListListenerTest {@Testpublic void onMessage() {try {System.in.read();} catch (IOException e) {e.printStackTrace();}}
}

6.5.3 Map类型消息

package com.gblfy.mq.listener;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/spring-topic-consumer.xml")
public class TopicMapListenerTest {@Testpublic void onMessage() {try {System.in.read();} catch (IOException e) {e.printStackTrace();}}
}

6.5.4 Obj类型消息

package com.gblfy.mq.listener;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.io.IOException;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/spring-topic-consumer.xml")
public class TopicObjListenerTest {@Testpublic void onMessage() {try {System.in.read();} catch (IOException e) {e.printStackTrace();}}
}

6.6 @Test数据库联通测试

package com.gblfy.mq.mapper;import com.gblfy.mq.entity.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import javax.sql.DataSource;
import java.sql.Connection;
import java.util.Arrays;
import java.util.List;/*** 测试互数据库连接*/
public class UserMapperTest {private ApplicationContext ioc =new ClassPathXmlApplicationContext("/spring/applicationContext-dao.xml");private UserMapper userMapper =ioc.getBean("userMapper", UserMapper.class);/*** 测试数据库连接池*/@Testpublic void testDataSource() throws Exception {DataSource ds = ioc.getBean("dataSource", DataSource.class);System.out.println(ds);Connection conn = ds.getConnection();System.out.println(conn);}/*** 查询一个用户操作*/@Testpublic void itemById() {User user= userMapper.selectById(1);System.out.println("~~~~~~~~~:" + user);}/*** 查询多个用户操作*/@Testpublic void itemListByIds() {List<Integer> ids = Arrays.asList(1, 2);List<User> userList = userMapper.selectBatchIds(ids);for (User user: userList ) {System.out.println("~~~~~~~" + user);}}/*** 查询用户列表操作*/@Testpublic void itemList() {List<User> userList = userMapper.selectList(null);for (User user: userList ) {System.out.println("这是一个测试" + "\n" + user);}}
}

下一篇:企业实战07_SSM整合ActiveMQ支持多种类型消息https://blog.csdn.net/weixin_40816738/article/details/100572420

本专栏项目下载链接:

下载方式链接详细
GitLab项目https://gitlab.com/gb-heima/ssm-activemq
Gitgit clone git@gitlab.com:gb-heima/ssm-activemq.git
zip包https://gitlab.com/gb-heima/ssm-activemq/-/archive/master/ssm-activemq-master.zip
Fork地址https://gitlab.com/gb-heima/ssm-activemq/-/forks/new

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523331.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下远程登录如何退出,Ubuntu 中rdesktop如何切换和退出远程桌面

Ubuntu 中rdesktop如何切换和退出远程桌面原文如下&#xff1a;I use RDP a lot and having to disconnect from my session to switch to another window is not an option. The problem lies somewhere with compiz. What supposed to happen when you hit ctrlaltenter is …

K8S精华问答 | K8S和Openstack发展方向是怎样的?

kubernetes&#xff0c;简称K8S&#xff0c;是用8代替8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kubernetes提供了应…

实战07_SSM整合ActiveMQ支持多种类型消息

接上一篇&#xff1a;企业实战06_SSM整合ActiveMQ支持多种类型消息https://blog.csdn.net/weixin_40816738/article/details/100572147 1、StreamMessage java原始值数据流 2、MapMessage 键值对 3、TextMessage 字符串 4、ObjectMessage 一个序列化的java对象 5、BytesMessage…

Linux进程核心代码怎么查看,GCOV查看arm-linux代码覆盖率

一、关于gcov工具gcov伴随gcc发布。gcc编译加入-fprofile-arcs -ftest-coverage参数生成二进制程序&#xff0c;执行测试用例生成代码覆盖率信息。1、如何使用gcov用GCC编译的时候加上-fprofile-arcs -ftest-coverage选项&#xff0c;链接的时候也加上。fprofile-arcs参数使gcc…

对于华为,英特尔与微软表示继续提供支持;亚马逊亲证云计算服务出现宕机;中国移动5G套餐曝光,每月都含200G流量……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 小米CC全新系列小王子&小…

Linux 环境 zookeeper集群安装、配置、验证

架构说明&#xff1a; Dubbo 建议使用 Zookeeper 作为服务的注册中心。Zookeeper 集群中只要有过半的节点是正常的情况下&#xff0c;那么整个集群对外就是可用的。正是基于这个特性&#xff0c; 要将 ZK 集群的节点数量要为奇数&#xff08;2n1&#xff1a; 如 3、 5、 7 个节…

怎么时装linux可用空间变大,[合集]OpenSUSE安装octave时装1G多texliv - 精华区 - 优秀的Free OS(Linux)版 - 北大未名BBS...

发信人: mytbk (LCPU AP|ArchLinux), 信区: Linux标 题: [合集]OpenSUSE安装octave时装1G多texlive发信站: 北大未名站 (2014年01月10日13:17:19 星期五), 站内信件───────────────────────────────────────作者PsySunrise (无良之心)…

基于zookeeper(集群)+LevelDB的ActiveMq高可用集群安装、配置、测试

参考 腾讯云~基于zookeeper(集群)LevelDB的ActiveMq高可用伪集群安装、配置、测试 https://gblfy.blog.csdn.net/article/details/127465602

5G 来了,我们可以做什么?

5G 清风徐来&#xff0c;静待应用花开。这是最好的时代&#xff0c;也是最具挑战的时代。当下就国内而言&#xff0c;随着四张 5G 商用牌照的正式发放&#xff0c;运营商们纷纷扩大并加快了建网的规模与速度&#xff1b;手机厂商们也早已于今年年初相继推出了 5G 手机&#xff…

linux内核之内存管理.doc,linux内核之内存管理.doc

linux内核之内存管理Linux内核之内存管理作者&#xff1a;harvey wang邮箱&#xff1a;harvey.perfect新浪博客地址&#xff1a;/harveyperfect &#xff0c;有关于减肥和学习英语相关的博文&#xff0c;欢迎交流把linux内存管理分为下面四个层面(一)硬件辅助的虚实地址转换(二…

SpringBoot项目去除druid监控的底部广告

文章目录一、阿里Druid广告的介绍二、引入Druid的Starter依赖三、编写配置类,进行广告的去除四 、启动项目进行测试五、原理说明一、阿里Druid广告的介绍 如果使用的是阿里Druid的数据库连接池,那么会自带一个数据库的监控页面. 但是其页面底部会有阿里的广告,如下图所示,并且…

精简linux操作系统,Tiny Core Linux—仅10多MB的精简Linux 操作系统发行版

Tiny Core Linux是一款很简约的桌面Linux&#xff0c;体积小且可高度可扩展&#xff0c;基于Linux 3.x内核、Busybox、Tiny X、FLTK图形用户界面、JWM窗口管理器。像其他操作系统最少也要几百MB了&#xff0c;Tiny Core Linux不仅体积小&#xff0c;对硬件配置要求也很高&#…

面试官问你MyBatis中有哪些设计模式,把这篇文章发给他

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 疯狂的蚂蚁来源 | https://dwz.cn/KFgol1De之前总结过一篇Spring中用到了哪些设计模式&#xff1a;《面试官:“谈谈Spring中都用到了那些设计模式?”》&#xff0c;昨晚看到了一篇很不错的一篇介绍MyBatis中都用到了那些设计…

Linux 启动mysql提示表不存在

编辑my.cnf 设置大小写敏感配置在 vim /etc/my.cnf #添加lower_case_table_names1,忽略大小写 #重启MYSQL服务 service mysql restart&#xff0c;

linux 定时器 代码,linux C++ 定时器代码

linux C 定时器代码&#xff1a;#include #include #include using namespace std;/*union sigval{int sival_int; //integer valuevoid *sival_ptr; //pointer value};struct sigevent{int sigev_notify; //notification typeint sigev_signo; //signal numberunion sigval …

MySQL启动出现The server quit without updating PID file错误解决办法

解决办法其实很简单&#xff1a; 将 /etc/mysql 下的 my.cnf 文件删除&#xff0c;再次启动MySQL服务 删除前注意备份

腾讯云首次公开边缘计算网络开源平台,拥抱5G与万物互联

6月25日&#xff0c;由Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会在上海举办&#xff0c;腾讯云对外展示自身在边缘计算领域的最新进展&#xff0c;首次公开腾讯智能边缘计算网络平台TSEC&#xff08;Tencent Smart Edge Connector&#xff09;&#xff0…

linux输入qsub显示错误,linux – 使用qsub运行shellscript的’意外的文件结束’和’错误导入功能定义’错误...

我有以下shellscript&#xff1a;#!/bin/shcd /sw/local/bin/export LD_LIBRARY_PATH/sw/local/lib:/usr/local/Trolltech/Qt-4.7.2/lib:$LD_LIBRARY_PATH./FeatureFinderRaw -in /homes/JG-C1-18.mzML -out /homes/test_remove_after_use.featureXML -threads 20当我从自己的命…

解决SecureCRT与SecureFX中文乱码问题

文章目录一、SecureCRT中文乱码问题解决方法&#xff1a;二、SecureFX中文乱码问题解决方法&#xff1a;2.1. 找到SecureFX配置文件夹2.2. 在配置文件夹下的Sessions子目录中&#xff0c;找到SecureCRT连接对应的Session文件&#xff08;.ini扩展名&#xff09;&#xff0c;双击…

OpenStack精华问答 | OpenStack服务介绍

关于OpenStack的争议,从未停止&#xff0c;每每关于它的消息&#xff0c;都会一石激起千层浪。今天就让我们看看关于OpenStack的问答吧。1Q : OpenStack服务介绍A : MySQL为各个服务器提供数据存储RabbitMq:为各个服务之间提供通信认证和服务注册Keystone&#xff1a;为各个服务…