日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2024/9/27 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实战05_SSM整合ActiveMQ支持多种类型消息 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

接上一篇:實戰(zhàn)04_SSM整合ActiveMQ支持多種類型消息https://blog.csdn.net/weixin_40816738/article/details/100572124

1、StreamMessage java原始值數(shù)據(jù)流
2、MapMessage 鍵值對
3、TextMessage 字符串
4、ObjectMessage 一個序列化的java對象
5、BytesMessage 一個字節(jié)的數(shù)據(jù)流

此文章為企業(yè)實戰(zhàn)的展示操作,如果有地方不懂請留言,我看到后,會進行統(tǒng)一回復,讓我們一起進步,為自己加油!!!

項目名項目說明
ssm-activemq父工程,統(tǒng)一版本控制
producer生產(chǎn)者
consumer消費者
base-pojo公共實體類
base-dao公共接口,數(shù)據(jù)庫連接

文章目錄

  • 五、生產(chǎn)者producer
    • 5.1. 創(chuàng)建QueueController
    • 5.2. 創(chuàng)建QueueController
    • 5.3. 創(chuàng)建IQueueProductService接口
    • 5.4. 創(chuàng)建ITopicProductService接口
    • 5.5. 創(chuàng)建QueueProductServiceImpl實現(xiàn)類
    • 5.6. 創(chuàng)建TopicProductServiceImpl實現(xiàn)類
    • 5.7. 在resources 目錄下創(chuàng)建spring文件夾
      • 5.7.1. 在spring目錄下創(chuàng)建applicationContext-jms-queue.xml文件
      • 5.7.2. 在spring目錄下創(chuàng)建applicationContext-jms-topic.xml文件
      • 5.7.3. 在spring目錄下創(chuàng)建applicationContext-service.xml文件
      • 5.7.4. 在spring目錄下創(chuàng)建applicationContext-trans.xml文件
      • 5.7.5. 在spring目錄下創(chuàng)建spring-mvc.xml文件
      • 5.8. 在resources目錄下創(chuàng)建log4j.properties
      • 5.9. 在resources目錄下創(chuàng)建log4j.xml
      • 5.10. web.xml
    • 5.11. 驗證測試
    • 5.11.1. 數(shù)據(jù)庫聯(lián)通測試UserMapperTest
    • 5.11.2. 點對點測試場景
    • 5.11.3. 發(fā)布訂閱測試場景

五、生產(chǎn)者producer

5.1. 創(chuàng)建QueueController

package com.gblfy.mq.controller;import com.alibaba.fastjson.JSON; import com.gblfy.mq.entity.User; import com.gblfy.mq.service.IQueueProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.jms.Destination; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;/*** @author gblfy* @ClassNme QueueController* @Description TODO* @Date 2019/8/31 18:45* @version1.0*/ @Controller @RequestMapping("/queue") public class QueueController {@Autowiredprivate Destination QUEUE_Str;//傳遞Str字符串@Autowiredprivate Destination QUEUE_Str_LIST;//傳遞傳遞JSON字符串@Autowiredprivate Destination QUEUE_OBJ;//傳遞OBJ對象@Autowiredprivate Destination QUEUE_MAP;//傳遞MAP@Autowiredprivate IQueueProductService iQueueProductService;/*** 發(fā)送消息類型 String* 測試鏈接:http://localhost:8080/queue/itemList** @return*/@RequestMapping("/str")@ResponseBodypublic String sendStringMessage() {String messge = "send string type message";iQueueProductService.sendStringMessage(QUEUE_Str, messge);return "success";}/*** 發(fā)送消息類型 List* <p>* 1.List<User>轉成jsonString* 2.由于list沒有實現(xiàn)序列化,因此不能傳遞對象* <p>* 測試鏈接:http://localhost:8080/queue/objList** @return*/@RequestMapping("/objList")@ResponseBodypublic String sendListMessage() {//獲取對象User user = getObj();//將獲取對象芳容ListList<User> userList = getListObj(user);//把對象列表轉成jsonStringString jsonString = JSON.toJSONString(userList);iQueueProductService.sendListMessage(QUEUE_Str_LIST, jsonString);return "success";}/*** 發(fā)送消息類型 Obj* <p>* 測試鏈接:http://localhost:8080/queue/obj** @return*/@RequestMapping("/obj")@ResponseBodypublic String sendObjMessage() {//獲取對象User user = getObj();//把對象傳遞iQueueProductService.sendObjMessage(QUEUE_OBJ, user);return "success";}/*** 發(fā)送消息類型 MAP* <p>* 測試鏈接:http://localhost:8080/queue/map** @return*/@RequestMapping("/map")@ResponseBodypublic String sendMapMessage() {String mapKey = "mapKey";String mapValue = "mapValue";//把map傳遞iQueueProductService.sendMapMessage(QUEUE_MAP, mapKey, mapValue);return "success";}/*** 封裝map** @param key* @param object* @return*/public Map<String, Object> getMap(String key, Object object) {Map<String, Object> map = new HashMap<>();map.put(key, object);return map;}/*** 封裝List** @param user* @return*/public List<User> getListObj(User user) {List<User> userList = new ArrayList<User>();userList.add(user);return userList;}/*** 封裝公用對象** @return*/private User getObj() {//封裝測試數(shù)據(jù)User user = new User().builder().id("1").name("yuxin").age(02).build();return user;} }

5.2. 創(chuàng)建QueueController

package com.gblfy.mq.controller;import com.alibaba.fastjson.JSON; import com.gblfy.mq.entity.User; import com.gblfy.mq.service.ITopicProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.jms.Destination; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;/*** @author gblfy* @ClassNme TOPICController* @Description TODO* @Date 2019/8/31 18:45* @version1.0*/ @Controller @RequestMapping("/topic") public class TopicController {@Autowiredprivate Destination TOPIC_Str;//傳遞Str字符串@Autowiredprivate Destination TOPIC_Str_LIST;//傳遞傳遞JSON字符串@Autowiredprivate Destination TOPIC_OBJ;//傳遞OBJ對象@Autowiredprivate Destination TOPIC_MAP;//傳遞MAP@Autowiredprivate ITopicProductService iTopicProductService;/*** 發(fā)送消息類型 String* 測試鏈接:http://localhost:8080/topic/itemList** @return*/@RequestMapping("/str")@ResponseBodypublic String sendStringMessage() {String messge = "send string type message";iTopicProductService.sendStringMessage(TOPIC_Str, messge);return "success";}/*** 發(fā)送消息類型 List* <p>* 1.List<User>轉成jsonString* 2.由于list沒有實現(xiàn)序列化,因此不能傳遞對象* <p>* 測試鏈接:http://localhost:8080/topic/objList** @return*/@RequestMapping("/objList")@ResponseBodypublic String sendListMessage() {//獲取對象User user = getObj();//將獲取對象芳容ListList<User> userList = getListObj(user);//把對象列表轉成jsonStringString jsonString = JSON.toJSONString(userList);iTopicProductService.sendListMessage(TOPIC_Str_LIST, jsonString);return "success";}/*** 發(fā)送消息類型 Obj* <p>* 測試鏈接:http://localhost:8080/topic/obj** @return*/@RequestMapping("/obj")@ResponseBodypublic String sendObjMessage() {//獲取對象User user = getObj();//把對象傳遞iTopicProductService.sendObjMessage(TOPIC_OBJ, user);return "success";}/*** 發(fā)送消息類型 MAP* <p>* 測試鏈接:http://localhost:8080/topic/map** @return*/@RequestMapping("/map")@ResponseBodypublic String sendMapMessage() {String mapKey = "mapKey";String mapValue = "mapValue";//把map傳遞iTopicProductService.sendMapMessage(TOPIC_MAP, mapKey, mapValue);return "success";}/*** 封裝map** @param key* @param object* @return*/public Map<String, Object> getMap(String key, Object object) {Map<String, Object> map = new HashMap<>();map.put(key, object);return map;}/*** 封裝List** @param user* @return*/public List<User> getListObj(User user) {List<User> userList = new ArrayList<User>();userList.add(user);return userList;}/*** 封裝公用對象** @return*/private User getObj() {//封裝測試數(shù)據(jù)User user = new User().builder().id("1").name("yuxin").age(02).build();return user;} }

5.3. 創(chuàng)建IQueueProductService接口

package com.gblfy.mq.service;import javax.jms.Destination; import java.io.Serializable;public interface IQueueProductService {/*** 發(fā)送消息類型 String** @param destination* @param msg*/void sendStringMessage(Destination destination, final String msg);/*** 送消息類型 List** @param destination* @param msg*/void sendListMessage(Destination destination, final String msg);/*** 發(fā)送消息類型 Obj** @param destination* @param obj*/void sendObjMessage(Destination destination, final Serializable obj);/*** 發(fā)送消息類型 map** @param destination* @param message*/void sendMapMessage(Destination destination, final String mapKey, final String message);/*** 向指定Destination發(fā)送字節(jié)消息** @param destination* @param bytes*/void sendBytesMessage(Destination destination, final byte[] bytes);/*** 向默認隊列發(fā)送Stream消息*/void sendStreamMessage(Destination destination); }

5.4. 創(chuàng)建ITopicProductService接口

package com.gblfy.mq.service;import javax.jms.Destination; import java.io.Serializable;public interface ITopicProductService {/*** 發(fā)送消息類型 String** @param destination* @param msg*/void sendStringMessage(Destination destination, final String msg);/*** 送消息類型 List** @param destination* @param msg*/void sendListMessage(Destination destination, final String msg);/*** 發(fā)送消息類型 Obj** @param destination* @param obj*/void sendObjMessage(Destination destination, final Serializable obj);/*** 發(fā)送消息類型 map** @param destination* @param message*/void sendMapMessage(Destination destination, final String mapKey, final String message);/*** 向指定Destination發(fā)送字節(jié)消息** @param destination* @param bytes*/void sendBytesMessage(Destination destination, final byte[] bytes);/*** 向默認隊列發(fā)送Stream消息*/void sendStreamMessage(Destination destination); }

5.5. 創(chuàng)建QueueProductServiceImpl實現(xiàn)類

package com.gblfy.mq.service.impl;import com.gblfy.mq.service.IQueueProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import org.springframework.stereotype.Service;import javax.jms.*; import java.io.Serializable;/*** @author gblfy* @ClassNme QueueProductService* @Description TODO* @Date 2019/9/4 14:43* @version1.0*/ @Service public class QueueProductServiceImpl implements IQueueProductService {@Autowiredprivate JmsTemplate jmsQueueTemplate;/*** 發(fā)送消息類型 String** @param destination* @param msg*/public void sendStringMessage(Destination destination, final String msg) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg);}});}/*** 送消息類型 List** @param destination* @param msg*/public void sendListMessage(Destination destination, final String msg) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg);}});}/*** 發(fā)送消息類型 Obj** @param destination* @param obj*/public void sendObjMessage(Destination destination, final Serializable obj) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createObjectMessage(obj);}});}/*** 發(fā)送消息類型 map** @param destination* @param message*/public void sendMapMessage(Destination destination, final String mapKey, final String message) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {MapMessage mapMessage = session.createMapMessage();mapMessage.setString(mapKey, message);return mapMessage;}});System.out.println("springJMS send map message...");}/*** 向指定Destination發(fā)送字節(jié)消息** @param destination* @param bytes*/public void sendBytesMessage(Destination destination, final byte[] bytes) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {BytesMessage bytesMessage = session.createBytesMessage();bytesMessage.writeBytes(bytes);return bytesMessage;}});System.out.println("springJMS send bytes message...");}/*** 向默認隊列發(fā)送Stream消息*/public void sendStreamMessage(Destination destination) {jmsQueueTemplate.send(new MessageCreator() {public Message createMessage(Session session) throws JMSException {StreamMessage message = session.createStreamMessage();message.writeString("stream string");message.writeInt(11111);return message;}});System.out.println("springJMS send Strem message...");} }

5.6. 創(chuàng)建TopicProductServiceImpl實現(xiàn)類

package com.gblfy.mq.service.impl;import com.gblfy.mq.service.ITopicProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import org.springframework.stereotype.Service;import javax.jms.*; import java.io.Serializable;/*** @author gblfy* @ClassNme QueueProductService* @Description TODO* @Date 2019/9/4 14:43* @version1.0*/@Service public class TopicProductServiceImpl implements ITopicProductService {@Autowiredprivate JmsTemplate jmsTopicTemplate;/*** 發(fā)送消息類型 String** @param destination* @param msg*/public void sendStringMessage(Destination destination, final String msg) {if (null == destination) {destination = jmsTopicTemplate.getDefaultDestination();}jmsTopicTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg);}});}/*** 送消息類型 List** @param destination* @param msg*/public void sendListMessage(Destination destination, final String msg) {if (null == destination) {destination = jmsTopicTemplate.getDefaultDestination();}jmsTopicTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg);}});}/*** 發(fā)送消息類型 Obj** @param destination* @param obj*/public void sendObjMessage(Destination destination, final Serializable obj) {if (null == destination) {destination = jmsTopicTemplate.getDefaultDestination();}jmsTopicTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createObjectMessage(obj);}});}/*** 發(fā)送消息類型 map** @param destination* @param message*/public void sendMapMessage(Destination destination, final String mapKey, final String message) {if (null == destination) {destination = jmsTopicTemplate.getDefaultDestination();}jmsTopicTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {MapMessage mapMessage = session.createMapMessage();mapMessage.setString(mapKey, message);return mapMessage;}});System.out.println("springJMS send map message...");}/*** 向指定Destination發(fā)送字節(jié)消息** @param destination* @param bytes*/public void sendBytesMessage(Destination destination, final byte[] bytes) {if (null == destination) {destination = jmsTopicTemplate.getDefaultDestination();}jmsTopicTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {BytesMessage bytesMessage = session.createBytesMessage();bytesMessage.writeBytes(bytes);return bytesMessage;}});System.out.println("springJMS send bytes message...");}/*** 向默認隊列發(fā)送Stream消息*/public void sendStreamMessage(Destination destination) {jmsTopicTemplate.send(new MessageCreator() {public Message createMessage(Session session) throws JMSException {StreamMessage message = session.createStreamMessage();message.writeString("stream string");message.writeInt(11111);return message;}});System.out.println("springJMS send Strem message...");} }

5.7. 在resources 目錄下創(chuàng)建spring文件夾

5.7.1. 在spring目錄下創(chuàng)建applicationContext-jms-queue.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--><!-- 真正可以產(chǎn)生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><property name="password" value="admin"></property></bean><!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory --><bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"><!-- 目標ConnectionFactory對應真實的可以產(chǎn)生JMS Connection的ConnectionFactory --><property name="targetConnectionFactory" ref="targetConnectionFactory"/></bean><!-- Spring提供的JMS工具類,它可以進行消息發(fā)送、接收等 --><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><!-- 這個connectionFactory對應的是我們定義的Spring提供的那個ConnectionFactory對象 --><property name="connectionFactory" ref="connectionFactory"/></bean><!--公共部分 End--><!--隊列名稱 gblfy_queue_String--><bean id="QUEUE_Str" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="QUEUE_Str"/></bean><!--隊列名稱 gblfy_queue_list--><bean id="QUEUE_Str_LIST" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="QUEUE_Str_LIST"/></bean><!--隊列名稱 gblfy_queue_obj--><bean id="QUEUE_OBJ" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="QUEUE_OBJ"/></bean><!--這個是隊列目的地,導入索引庫--><bean id="QUEUE_MAP" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="QUEUE_MAP"/></bean></beans>

5.7.2. 在spring目錄下創(chuàng)建applicationContext-jms-topic.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--><!-- 真正可以產(chǎn)生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><property name="password" value="admin"></property></bean><!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory --><bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"><!-- 目標ConnectionFactory對應真實的可以產(chǎn)生JMS Connection的ConnectionFactory --><property name="targetConnectionFactory" ref="targetConnectionFactory"/></bean><!-- Spring提供的JMS工具類,它可以進行消息發(fā)送、接收等 --><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><!-- 這個connectionFactory對應的是我們定義的Spring提供的那個ConnectionFactory對象 --><property name="connectionFactory" ref="connectionFactory"/></bean><!--公共部分 End--><!--隊列名稱 gblfy_queue_String--><bean id="TOPIC_Str" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg value="TOPIC_Str"/></bean><!--隊列名稱 gblfy_queue_list--><bean id="TOPIC_Str_LIST" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg value="TOPIC_Str_LIST"/></bean><!--隊列名稱 gblfy_queue_obj--><bean id="TOPIC_OBJ" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg value="TOPIC_OBJ"/></bean><!--這個是隊列目的地,導入索引庫--><bean id="TOPIC_MAP" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg value="TOPIC_MAP"/></bean></beans>

5.7.3. 在spring目錄下創(chuàng)建applicationContext-service.xml文件

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"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/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- spring自動去掃描base-pack下面或者子包下面的java文件--><!--管理Service實現(xiàn)類--><context:component-scan base-package="com.gblfy.mq"/> </beans>

5.7.4. 在spring目錄下創(chuàng)建applicationContext-trans.xml文件

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"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/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- spring自動去掃描base-pack下面或者子包下面的java文件--><!--管理Service實現(xiàn)類--><context:component-scan base-package="com.gblfy.mq"/> </beans>

5.7.5. 在spring目錄下創(chuàng)建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>

5.8. 在resources目錄下創(chuàng)建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

5.9. 在resources目錄下創(chuàng)建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>

5.10. 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>producer-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><!-- 指定加載的配置文件 ,通過參數(shù)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>

5.11. 驗證測試

5.11.1. 數(shù)據(jù)庫聯(lián)通測試UserMapperTest

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;/*** 測試互數(shù)據(jù)庫連接*/ public class UserMapperTest {private ApplicationContext ioc =new ClassPathXmlApplicationContext("/spring/applicationContext-dao.xml");private UserMapper userMapper =ioc.getBean("userMapper", UserMapper.class);/*** 測試數(shù)據(jù)庫連接池*/@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 item = userMapper.selectById(1);System.out.println("~~~~~~~~~:" + item);}/*** 查詢商多個品操作*/@Testpublic void itemListByIds() {List<Integer> ids = Arrays.asList(1, 2);List<User> itemList = userMapper.selectBatchIds(ids);for (User item : itemList) {System.out.println("~~~~~~~" + item);}}/*** 查詢商品列表操作*/@Testpublic void itemList() {List<User> itemList = userMapper.selectList(null);for (User item : itemList) {System.out.println("這是一個測試" + "\n" + item);}} }

5.11.2. 點對點測試場景

package com.gblfy.mq.service;import com.alibaba.fastjson.JSON; import com.gblfy.mq.entity.User; import org.apache.activemq.command.ActiveMQQueue; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.jms.*; import java.io.Serializable; import java.util.ArrayList; import java.util.List;@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:/spring/applicationContext-jms-queue.xml") public class IQueueProductServiceTest {@Autowiredprivate JmsTemplate jmsQueueTemplate;/*** 消息類型 List*/@Testpublic void sendStringMessage() {Destination destination = new ActiveMQQueue("QUEUE_Str");sendListMessage(destination, "send string queue message!!!");}/*** 消息類型 List*/@Testpublic void sendListMessage() {Destination destination = new ActiveMQQueue("QUEUE_Str_LIST");User user = getObj();List<User> userList = getListObj(user);//把對象列表轉成jsonStringfinal String jsonString = JSON.toJSONString(userList);sendListMessage(destination, jsonString);}/*** 消息類型 Obj*/@Testpublic void sendObjMessage() {Destination destination = new ActiveMQQueue("QUEUE_OBJ");User user = getObj();sendObjMessage(destination, user);}/*** 消息類型 Map*/@Testpublic void sendMapMessage() {String mapKey = "mapKey";String mapValue = "mapValue";Destination destination = new ActiveMQQueue("QUEUE_MAP");sendMapMessage(destination, mapKey, mapValue);}/*** 發(fā)送消息類型 String** @param destination* @param msg*/public void sendStringMessage(Destination destination, final String msg) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg);}});}/*** 送消息類型 List** @param destination* @param msg*/public void sendListMessage(Destination destination, final String msg) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg);}});}/*** 發(fā)送消息類型 Obj** @param destination* @param obj*/public void sendObjMessage(Destination destination, final Serializable obj) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createObjectMessage(obj);}});}/*** 發(fā)送消息類型 map** @param destination* @param message*/public void sendMapMessage(Destination destination, final String mapKey, final String message) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {MapMessage mapMessage = session.createMapMessage();mapMessage.setString(mapKey, message);return mapMessage;}});System.out.println("springJMS send map message...");}/*** 向指定Destination發(fā)送字節(jié)消息** @param destination* @param bytes*/public void sendBytesMessage(Destination destination, final byte[] bytes) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {BytesMessage bytesMessage = session.createBytesMessage();bytesMessage.writeBytes(bytes);return bytesMessage;}});System.out.println("springJMS send bytes message...");}/*** 向默認隊列發(fā)送Stream消息*/public void sendStreamMessage(Destination destination) {jmsQueueTemplate.send(new MessageCreator() {public Message createMessage(Session session) throws JMSException {StreamMessage message = session.createStreamMessage();message.writeString("stream string");message.writeInt(11111);return message;}});System.out.println("springJMS send Strem message...");}/*** 封裝List** @param user* @return*/public List<User> getListObj(User user) {List<User> userList = new ArrayList<User>();userList.add(user);return userList;}/*** 封裝公用對象** @return*/private User getObj() {//封裝測試數(shù)據(jù)User user = new User().builder().id("1").name("yuxin").age(02).build();return user;} }

5.11.3. 發(fā)布訂閱測試場景

package com.gblfy.mq.service;import com.alibaba.fastjson.JSON; import com.gblfy.mq.entity.User; import org.apache.activemq.command.ActiveMQQueue; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.jms.*; import java.io.Serializable; import java.util.ArrayList; import java.util.List;@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:/spring/applicationContext-jms-topic.xml") public class ITopicProductServiceTest {@Autowiredprivate JmsTemplate jmsQueueTemplate;/*** 消息類型 List*/@Testpublic void sendStringMessage() {Destination destination = new ActiveMQQueue("TOPIC_Str");sendListMessage(destination, "send string queue message!!!");}/*** 消息類型 List*/@Testpublic void sendListMessage() {Destination destination = new ActiveMQQueue("TOPIC_Str_LIST");User user = getObj();List<User> userList = getListObj(user);//把對象列表轉成jsonStringfinal String jsonString = JSON.toJSONString(userList);sendListMessage(destination, jsonString);}/*** 消息類型 Obj*/@Testpublic void sendObjMessage() {Destination destination = new ActiveMQQueue("TOPIC_OBJ");User user = getObj();sendObjMessage(destination, user);}/*** 消息類型 Map*/@Testpublic void sendMapMessage() {String mapKey = "mapKey";String mapValue = "mapValue";Destination destination = new ActiveMQQueue("TOPIC_MAP");sendMapMessage(destination, mapKey, mapValue);}/*** 發(fā)送消息類型 String** @param destination* @param msg*/public void sendStringMessage(Destination destination, final String msg) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg);}});}/*** 送消息類型 List** @param destination* @param msg*/public void sendListMessage(Destination destination, final String msg) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg);}});}/*** 發(fā)送消息類型 Obj** @param destination* @param obj*/public void sendObjMessage(Destination destination, final Serializable obj) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createObjectMessage(obj);}});}/*** 發(fā)送消息類型 map** @param destination* @param message*/public void sendMapMessage(Destination destination, final String mapKey, final String message) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {MapMessage mapMessage = session.createMapMessage();mapMessage.setString(mapKey, message);return mapMessage;}});System.out.println("springJMS send map message...");}/*** 向指定Destination發(fā)送字節(jié)消息** @param destination* @param bytes*/public void sendBytesMessage(Destination destination, final byte[] bytes) {if (null == destination) {destination = jmsQueueTemplate.getDefaultDestination();}jmsQueueTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {BytesMessage bytesMessage = session.createBytesMessage();bytesMessage.writeBytes(bytes);return bytesMessage;}});System.out.println("springJMS send bytes message...");}/*** 向默認隊列發(fā)送Stream消息*/public void sendStreamMessage(Destination destination) {jmsQueueTemplate.send(new MessageCreator() {public Message createMessage(Session session) throws JMSException {StreamMessage message = session.createStreamMessage();message.writeString("stream string");message.writeInt(11111);return message;}});System.out.println("springJMS send Strem message...");}/*** 封裝List** @param user* @return*/public List<User> getListObj(User user) {List<User> userList = new ArrayList<User>();userList.add(user);return userList;}/*** 封裝公用對象** @return*/private User getObj() {//封裝測試數(shù)據(jù)User user = new User().builder().id("1").name("yuxin").age(02).build();return user;}}

下一篇:實戰(zhàn)06_SSM整合ActiveMQ支持多種類型消息https://blog.csdn.net/weixin_40816738/article/details/100572147

本專欄項目下載鏈接:

下載方式鏈接詳細
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

總結

以上是生活随笔為你收集整理的实战05_SSM整合ActiveMQ支持多种类型消息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

欧美黄色成人 | 九九免费精品视频在线观看 | 国产精品一码二码三码在线 | 中文乱幕日产无线码1区 | 美女露久久 | 欧美黄在线 | 91精品国产自产在线观看 | 色婷婷丁香| 国产一区二区在线免费播放 | 婷婷丁香六月天 | 国产精品乱码久久久久久1区2区 | 国产人成看黄久久久久久久久 | 国产一区在线看 | 久草视频视频在线播放 | 成人免费视频网 | 91九色丨porny丨丰满6 | 国产精品 999| 色94色欧美 | a视频在线观看免费 | 日韩在线不卡视频 | 国产综合视频在线观看 | 91九色在线 | 日韩有码网站 | 国产精品第一页在线 | www.av在线.com | 色是在线视频 | 蜜桃视频成人在线观看 | 午夜视频在线网站 | 午夜视频免费在线观看 | 成人在线观看av | 欧美一级性生活片 | 亚洲综合色站 | 美国av片在线观看 | www.久热| 色天天综合网 | 人人超碰免费 | 视频一区二区三区视频 | 香蕉视频国产在线观看 | 三级av在线 | 国产精品高潮呻吟久久av无 | 99久久精品一区二区成人 | 91精品国产欧美一区二区成人 | 美女黄频在线观看 | 久久久国产网站 | 免费在线观看av网站 | 91精品国产电影 | 久久高清国产 | 午夜免费视频网站 | 六月婷婷久香在线视频 | 日韩av黄| 91精品国产自产91精品 | 婷婷综合国产 | 久久综合成人网 | www.日本色 | 色网站在线看 | 日韩精品一区在线观看 | 亚洲最新在线 | 国产99在线免费 | 亚洲欧美日韩一级 | 鲁一鲁影院 | 日韩美视频 | 日韩欧美在线不卡 | 国产永久免费高清在线观看视频 | 久久人人爽人人爽人人片 | 热久久99这里有精品 | 国产女人40精品一区毛片视频 | 国产三级久久久 | 亚洲国产综合在线 | 狠狠狠狠狠狠天天爱 | 国产在线不卡视频 | 天天干夜夜擦 | 欧美成人精品在线 | 亚洲精品午夜久久久久久久 | 日韩在线一二三区 | 色五月成人| av五月婷婷 | 国产精品观看在线亚洲人成网 | 精品国产123| 超碰人人做 | 亚洲精品国产第一综合99久久 | 免费在线观看污网站 | 国产污视频在线观看 | 国产五月 | 亚洲精品午夜视频 | 国产精品99久久久久久久久久久久 | 久久久污| 伊人婷婷 | 国产精品久久99综合免费观看尤物 | 久久免费福利 | 在线看国产 | 97超碰国产精品 | 久久国产精品第一页 | av天天干| 91pony九色丨交换 | 亚洲在线国产 | 色综合www| 久草在线高清视频 | 在线成人免费电影 | 成人亚洲网 | 国产99久久九九精品 | 成av在线 | 免费在线播放视频 | 欧美精品一区二区三区四区在线 | av免费线看 | 久久精品中文字幕一区二区三区 | 五月婷婷综合激情 | 日韩欧美在线综合网 | 免费网站在线观看成人 | av亚洲产国偷v产偷v自拍小说 | 日韩精品影视 | 波多野结衣在线播放视频 | 在线免费黄色毛片 | 国产成人久久av免费高清密臂 | 高清不卡毛片 | 精品久久久久久久久久久久久 | 高清免费在线视频 | 久久精品屋 | 99亚洲天堂| 成人资源在线 | 九九有精品 | 亚洲精品99久久久久中文字幕 | 国产成人一区二 | 精品视频成人 | 国产午夜小视频 | 国产精品原创av片国产免费 | 亚洲区精品 | 免费人做人爱www的视 | 亚洲黄色网络 | 深夜男人影院 | 久草在线免费看视频 | 久久久成人精品 | 国内外成人在线视频 | 免费看网站在线 | 国产成免费视频 | 日韩精品无 | 99这里只有精品99 | 久久999久久 | 四虎影视8848dvd | 日韩av一卡二卡三卡 | 精品亚洲视频在线观看 | 精品免费视频123区 午夜久久成人 | 日韩一二区在线观看 | 亚洲欧洲视频 | 99久久9 | 天天操天天干天天操天天干 | 国产精品99久久久久的智能播放 | 亚洲成人免费在线 | 色.com| 97在线免费视频 | 国产精品亚洲片在线播放 | 国产精品国产精品 | 国产69精品久久99不卡的观看体验 | 狠狠色狠狠色综合系列 | 丁香高清视频在线看看 | 少妇av网| 激情亚洲综合在线 | 欧美一级特黄高清视频 | www五月天婷婷 | 韩国三级在线一区 | 91pony九色丨交换 | 欧美性网站 | 日韩在线观看高清 | 99在线热播精品免费 | 一区二区三区免费在线观看视频 | 午夜精品一二区 | 日韩激情视频在线 | а天堂中文最新一区二区三区 | 一级久久精品 | 狠狠色香婷婷久久亚洲精品 | 中文字幕免费高 | 久草网视频在线观看 | 三上悠亚在线免费 | 三上悠亚一区二区在线观看 | 亚洲精品伦理在线 | 国产精品成人久久久久久久 | 久久国产精品一区二区三区 | 天天色天天 | 欧美analxxxx| 亚洲精品456在线播放乱码 | 少妇搡bbbb搡bbb搡69 | 美女免费视频一区二区 | av天天澡天天爽天天av | 99视频在线观看视频 | 九九免费视频 | 国产在线观看二区 | 亚洲精品视频在线观看免费视频 | 97在线观看视频国产 | 777xxx欧美 | 国产一区二区免费在线观看 | 成人黄色在线看 | 99精品视频一区 | 午夜精品中文字幕 | 国产视频999 | 国产精品麻豆91 | 日韩精品第一区 | 国产精品伦一区二区三区视频 | 激情综合五月天 | 欧美精品网站 | 青青河边草手机免费 | 中文在线最新版天堂 | 日本久热 | 欧美日韩国产免费视频 | 日本特黄特色aaa大片免费 | 亚洲极色| 婷婷成人亚洲综合国产xv88 | 国产午夜在线观看 | 亚洲国产影院av久久久久 | 亚洲精品高清在线 | 最新国产一区二区三区 | 特黄一级毛片 | 999久久久欧美日韩黑人 | a视频在线观看免费 | 久热色超碰 | 午夜国产福利在线观看 | 国产色视频一区二区三区qq号 | 精品国产诱惑 | 久久国产区 | 久久电影网站中文字幕 | 中文字幕在线观看一区二区三区 | 久久精品国产一区二区电影 | 中文字幕字幕中文 | av国产网站| 久久综合狠狠综合久久激情 | 国产一级视频在线观看 | 黄色免费观看 | 91精品网站在线观看 | 午夜国产一区二区三区四区 | 91视频免费看片 | a电影免费看 | 特级毛片aaa | 久久亚洲欧美 | 日韩在线免费播放 | 国产精品女人久久久 | 亚洲精品视频网站在线观看 | 亚一亚二国产专区 | 香蕉视频日本 | 又紧又大又爽精品一区二区 | 久草手机视频 | 最新黄色av网址 | 天天干天天干天天干 | 国产精品一区二区三区在线播放 | 国产精品一区二区在线看 | 久久99国产精品 | 黄色a级片在线观看 | 狠狠操狠狠插 | 欧美日韩免费一区二区 | 中文字幕久久精品亚洲乱码 | 一区 在线 影院 | 美女免费电影 | 亚洲桃花综合 | 麻豆影视在线观看 | 欧美一区二视频在线免费观看 | 亚洲综合色播 | 欧美国产日韩一区二区三区 | www.五月天婷婷 | 欧美精品国产综合久久 | 国产精品亚洲视频 | 国产精品久久在线观看 | 天天射天天射 | av亚洲产国偷v产偷v自拍小说 | 日韩欧美精品一区二区三区经典 | 婷婷成人综合 | 欧美一区二区伦理片 | 精品无人国产偷自产在线 | 97理论电影| 免费视频久久 | 91精品久久久久久久99蜜桃 | 欧美尹人| 五月激情综合婷婷 | 丁香在线视频 | 色婷婷播放 | 在线观看不卡视频 | 亚洲免费一级 | 婷婷色吧| 这里只有精彩视频 | 91九色视频国产 | 久久久久久国产一区二区三区 | 国产三级av在线 | 亚洲久草视频 | 亚洲电影第一页av | 亚洲理论在线观看 | av片子在线观看 | 国产日韩欧美视频 | 国外av在线 | 天天做天天爱天天爽综合网 | 欧美一区二区三区激情视频 | 一区二区三区免费在线播放 | 欧美激情视频免费看 | 成人a级免费视频 | 黄色网在线免费观看 | av九九九 | 国产精品久久久免费 | 综合久久综合久久 | 久久久影院一区二区三区 | 91香蕉国产在线观看软件 | 中文字幕在线观看免费观看 | 深夜免费福利网站 | 免费精品国产va自在自线 | 特级a老妇做爰全过程 | 九九九视频在线 | 国产91精品一区二区麻豆网站 | 色综合在 | 色综合久久综合中文综合网 | 亚洲撸撸 | 精品国产激情 | 国产精品xxxx18a99 | 久久免费的精品国产v∧ | 欧洲av不卡 | 中文字幕免费高清 | 亚洲成人家庭影院 | 国产精品毛片久久久久久 | 国产精品一区一区三区 | 久久激五月天综合精品 | 99久久精品免费看国产 | 精品国产一区二区在线 | 精品久久在线 | 日韩久久一区二区 | 亚洲国产高清在线 | 狠狠狠的干 | 狠狠干,狠狠操 | 亚洲日韩中文字幕在线播放 | 人人草天天草 | 天天舔天天搞 | 国内三级在线 | 色在线亚洲 | 国产在线a | av片免费播放| 天天鲁一鲁摸一摸爽一爽 | 五月婷婷视频在线 | 亚洲美女免费视频 | 66av99精品福利视频在线 | 色综合天天综合网国产成人网 | 丁香视频五月 | 麻豆精品在线视频 | 丁香视频在线观看 | 久艹视频在线免费观看 | 999久久久久 | 久草亚洲视频 | 国产精品第一页在线 | 一级全黄毛片 | 在线免费精品视频 | 久久久久免费电影 | 黄色软件大全网站 | 99视频这里有精品 | 日韩精品 在线视频 | a黄色一级| 免费av在线| 激情视频亚洲 | 久久99热这里只有精品 | 五月婷综合网 | 精品国产网址 | 天天操天天操天天操天天操天天操 | 国产精品自在线 | 成人蜜桃 | 久热免费在线 | 69精品 | 午夜精品999 | 国产二区视频在线 | av资源免费观看 | 99久久影院 | 免费在线观看av的网站 | 成年人免费电影在线观看 | 国产精品久久久视频 | 天天干天天做天天操 | 成年人在线观看视频免费 | 一区二区三区高清在线观看 | a特级毛片| 国产啊v在线观看 | 亚洲国产高清在线观看视频 | 人人舔人人| 免费视频网 | 成人在线视频免费看 | 999久久国产 | 99久久99久久免费精品蜜臀 | 丁香婷婷深情五月亚洲 | 国产日韩欧美在线看 | 成人免费视频网站 | 视频在线观看入口黄最新永久免费国产 | 国产美女无遮挡永久免费 | 国产一区黄色 | 欧美精品久久久久久久亚洲调教 | 久久国产亚洲 | 久草爱视频 | 一级黄色片在线观看 | 久精品在线观看 | 久久爱资源网 | 国产精品久久久久久一区二区 | 天天色天天操综合 | 日韩免费三区 | 91免费观看网站 | 国产精品一区二区久久 | 日韩成人免费观看 | 国产成人一二三 | 欧美 激情 国产 91 在线 | 中文字幕精| 天天av天天| 波多野结衣一区二区三区中文字幕 | bayu135国产精品视频 | 人人射人人插 | 日韩在线字幕 | 在线国产片| 国产大陆亚洲精品国产 | 五月婷婷中文 | 久久精品国产精品亚洲 | 日韩视频免费在线观看 | 一级黄视频 | aaa日本高清在线播放免费观看 | 91 在线视频播放 | 波多野结衣网址 | 久久av黄色| 久草爱视频 | 91女子私密保健养生少妇 | 五月天丁香视频 | 国产精品一区在线观看 | 国产xx视频 | www.久久精品视频 | 五月婷婷视频在线 | 99亚洲天堂 | 中文在线字幕免费观 | 国产精品永久免费在线 | 麻豆视频在线 | 婷婷六月天天 | 黄色中文字幕在线 | 婷婷丁香激情网 | 在线黄色av | 欧美国产日韩在线视频 | 国产福利免费看 | 国产精品美女久久久网av | 在线观看韩日电影免费 | 日韩成人在线一区二区 | 精品一区二区久久久久久久网站 | 中文字幕丝袜美腿 | 婷婷久久一区 | 51久久夜色精品国产麻豆 | 久久精品99视频 | 丁香婷婷综合激情 | 久久久久国产精品免费 | 国产剧情一区二区在线观看 | 福利视频在线看 | 在线观看中文字幕 | 中文在线a∨在线 | 福利一区二区 | 人人射网站| 免费在线观看av网站 | 国产精品免费久久久久久久久久中文 | 91高清免费在线观看 | 久久96国产精品久久99软件 | 99亚洲视频| 国产在线播放不卡 | 欧美精品成人在线 | 久久黄视频| 久草在线一免费新视频 | 中文字幕在线观看你懂的 | 91麻豆精品国产91久久久无需广告 | 国产91av视频在线观看 | 免费的黄色av| 久久免费精品一区二区三区 | 中文视频在线看 | 69国产精品成人在线播放 | 国产正在播放 | 四虎国产精品成人免费影视 | 在线观看免费黄视频 | 日韩www在线 | 国产原创在线 | 欧美a级成人淫片免费看 | 成人黄色在线 | 九九热只有这里有精品 | 久久av免费 | 亚洲成人家庭影院 | 欧美人操人 | 日韩国产精品久久久久久亚洲 | 日韩午夜在线观看 | 波多野结衣在线视频免费观看 | 一区二区三区国产精品 | 欧美一性一交一乱 | 国产精品久久久久久久免费大片 | 国产精久久 | 精品91久久久久 | 日韩中文在线视频 | 91视频在线观看大全 | 国产视频欧美视频 | 国内久久看| 亚洲精品视频第一页 | 国产日韩av在线 | 婷婷5月激情5月 | 久久伊人八月婷婷综合激情 | 日韩av午夜在线观看 | 色是在线视频 | 国产精品视频最多的网站 | 福利视频区 | 国产综合片 | 在线国产不卡 | 午夜精品久久久久久久99 | 一区二区成人国产精品 | 91视频免费观看 | 久久99久久99精品免视看婷婷 | 国产精品一区二区三区99 | 99视频在线精品国自产拍免费观看 | av在线小说 | 成人午夜电影在线 | 麻豆视频在线免费 | 五月婷婷综合网 | 亚洲国产精品人久久电影 | 黄色毛片一级片 | 国产小视频你懂的 | 日本黄区免费视频观看 | 国产福利精品一区二区 | 婷婷丁香av | 精品久久久影院 | 日韩中文字幕一区 | 美女视频黄网站 | 91毛片视频 | 国产高清 不卡 | 欧美日韩18 | 热久久精品在线 | 五月天国产| 91桃色在线观看视频 | 97国产情侣爱久久免费观看 | 黄色1级毛片 | 精品视频123区在线观看 | 激情综合网五月激情 | 久久免费一级片 | 免费污片| 日韩av免费一区 | 日本大片免费观看在线 | 在线小视频| 91传媒激情理伦片 | 欧美人人爱 | 在线免费观看黄网站 | 久久久国际精品 | 91av蜜桃 | 一区二区三区免费播放 | 激情综合亚洲精品 | 日韩一区二区三区高清免费看看 | 日本久久久久久科技有限公司 | 亚洲黄色av网址 | 91三级在线观看 | 国产在线观看网站 | 韩国av在线 | 久久99日韩| 色在线免费| 美女国内精品自产拍在线播放 | 久草视频免费在线播放 | 中文字幕 91 | 日本69hd | 草久电影| 精品福利视频在线观看 | 国产免费观看高清完整版 | 国产亚洲在线视频 | 亚洲精品www久久久久久 | 福利二区视频 | 在线中文字母电影观看 | 最新国产视频 | 亚洲视频久久久久 | 日本久久综合视频 | 日韩电影在线观看一区二区三区 | 成人免费影院 | 欧美久久久影院 | 国产精品成久久久久三级 | 欧美久久久久久久久久久 | 亚洲精品成人网 | 国产精品毛片一区二区 | 国产成人一区二区三区在线观看 | 国产精品短视频 | 中文在线a∨在线 | 91看片淫黄大片一级在线观看 | 欧美日韩色婷婷 | 97电影网手机版 | 国产在线观看高清视频 | 久久激情五月丁香伊人 | 国产一区精品在线 | 91大神精品视频 | 超碰在线观看av.com | 欧美日韩精品在线 | 中文字幕一区二区三区在线视频 | 国产成人在线免费观看 | 久久91久久久久麻豆精品 | 久久五月婷婷丁香社区 | 日日干天天干 | 五月婷婷操 | 日韩中文字幕91 | 国产高清精 | 欧美日韩国产一区二区三区 | 国产精品3| 欧美一级日韩免费不卡 | 国产精品免费看久久久8精臀av | 免费下载高清毛片 | 欧美a级在线免费观看 | 玖玖玖国产精品 | 免费看一级特黄a大片 | 免费在线播放av电影 | 少妇资源站 | 福利视频导航网址 | 久久久久久久久久久久久9999 | 欧美特一级 | 久久久久久久久久久黄色 | 国产精品理论片 | 欧美一级艳片视频免费观看 | 96超碰在线 | 国产成人黄色av | 日韩视频三区 | 国内精品99| 日本深夜福利视频 | 91福利在线导航 | 久久久久久高潮国产精品视 | 在线观看国产中文字幕 | 国产精品久久久久久五月尺 | 成年人在线观看视频免费 | 国产拍在线 | 婷婷射五月 | 激情图片qvod| 97超碰香蕉 | 国产玖玖在线 | 国产色道 | 色婷婷午夜 | 开心激情综合网 | 日韩91精品 | 中文字幕在线播放日韩 | 在线天堂日本 | 天天爽网站 | 91喷水| 精品久久久国产 | 国产精品初高中精品久久 | 久久综合精品国产一区二区三区 | 亚洲国产视频网站 | 91人人在线| 91av中文字幕 | 亚洲视频第一页 | 免费在线播放视频 | 亚洲国产理论片 | 欧美日韩一区二区三区免费视频 | 免费av免费观看 | 中文字幕 国产视频 | 久久精品国产99国产 | 国产中文字幕在线播放 | 麻豆国产精品永久免费视频 | 国产真实在线 | 久久精品一二三区白丝高潮 | 97狠狠操| 久久综合久久综合久久综合 | 色网站黄 | 国产精品久久久久久久免费大片 | 日日干精品 | 精油按摩av| 五月激情姐姐 | 中文字幕 国产精品 | 99久久久久成人国产免费 | 麻豆视频在线免费 | 久久69av| 天天摸夜夜添 | 五月天婷婷在线视频 | 97人人网 | 999久久久久久久久6666 | 中文字幕乱偷在线 | 九色91在线视频 | 日韩影片在线观看 | 日韩黄色免费电影 | 久久综合久久久久88 | 国产第一页福利影院 | 在线色网站| 国精产品999国精产品视频 | 91麻豆精品一区二区三区 | 五月天婷亚洲天综合网精品偷 | a级国产毛片 | 中文字幕永久在线 | 精品久久久久一区二区国产 | 中文字幕资源在线观看 | 日本在线中文在线 | 中文字幕国产一区二区 | 99热999 | 热久久国产精品 | 国产黄色片网站 | 国产在线观看你懂得 | 免费黄色在线网站 | 久久精品国产精品亚洲 | 日韩网站在线免费观看 | 亚洲乱码精品久久久久 | 成人国产精品久久久 | 91中文字幕网| 欧美日韩视频在线观看免费 | 免费99| 91精品福利在线 | 综合网欧美 | 婷婷色网视频在线播放 | 欧美精品中文在线免费观看 | 狠狠色丁香久久婷婷综 | 99精品视频精品精品视频 | 99久e精品热线免费 99国产精品久久久久久久久久 | 久久久片 | 天天操比 | 黄色毛片视频免费观看中文 | 日日日日日 | 久久综合加勒比 | 欧美日韩午夜爽爽 | 中文字幕在线观看第一区 | 亚洲精品高清一区二区三区四区 | 久久久精品国产免费观看一区二区 | 综合天天色 | 国产人在线成免费视频 | 97超视频| 亚洲精品视频在线看 | 天天色.com | 欧美激情xxxx | 狠狠躁夜夜av| 午夜视频在线观看一区 | 成人羞羞免费 | 五月婷av | 国产成人三级在线观看 | 日本久久久影视 | 精品久久久久久国产偷窥 | 日韩综合第一页 | 91精品欧美 | av在线8| 国产在线久久久 | 成年人免费在线观看 | 国产三级在线播放 | 国产69久久精品成人看 | 欧美国产精品一区二区 | 国产流白浆高潮在线观看 | 色综合国产 | 成人免费视频网 | 成人免费91| 中文字幕在线视频精品 | 深爱激情开心 | 一本色道久久综合亚洲二区三区 | 午夜视频不卡 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 美女视频国产 | 人人狠| 久久理论电影 | 日韩成人av在线 | 久草视频视频在线播放 | 久久tv| 亚洲高清在线视频 | 日韩中文字幕免费在线观看 | 日本黄网站 | 美女性爽视频国产免费app | 国产午夜精品免费一区二区三区视频 | 91香蕉视频在线 | 欧美大片大全 | 亚州激情视频 | 免费看片成人 | 国产精品综合av一区二区国产馆 | 香蕉在线视频播放网站 | 欧美日韩亚洲在线观看 | 亚洲视频在线免费看 | 色a网 | 日韩精品第一区 | 免费一级黄色 | 日韩资源在线 | 亚洲综合欧美精品电影 | 99久久精品电影 | 色就色,综合激情 | 成人教育av | 天天躁日日躁狠狠躁 | 久久有精品 | 国产免费一区二区三区网站免费 | 成人免费视频播放 | 精品国产成人av在线免 | 免费在线国产视频 | 日韩中文在线视频 | 色婷婷综合久久久久 | 深夜成人av| 免费91麻豆精品国产自产在线观看 | 国产精品久久久久久久7电影 | 婷婷久久婷婷 | 91精品黄色 | 久久久久黄 | 91成年人网站 | 免费在线观看日韩视频 | 粉嫩av一区二区三区四区五区 | 国产精品黄色av | 中文字幕一区二区在线播放 | 欧美精品黑人性xxxx | 免费高清男女打扑克视频 | 成人作爱视频 | va视频在线| 99成人在线视频 | 午夜视频在线瓜伦 | 亚洲va在线va天堂va偷拍 | 免费黄在线看 | 久久精品久久精品久久 | 久久久999| 亚欧洲精品视频在线观看 | 丰满少妇在线观看资源站 | 亚洲 成人 欧美 | 青青五月天 | 激情婷婷av| 成人小视频免费在线观看 | 欧美日韩另类在线观看 | 中文字幕在线高清 | 在线午夜av | 狠狠狠狠狠狠狠干 | 2000xxx影视 | 人人超碰97 | 久久精品99久久久久久2456 | 天天狠狠干 | 黄色片网站av | 国产伦理久久精品久久久久_ | 国产 色 | 2023亚洲精品国偷拍自产在线 | 天天在线视频色 | 成人国产精品久久久久久亚洲 | va视频在线观看 | 99精品久久只有精品 | 国产自产在线视频 | 欧美日韩精品区 | 热久久免费视频 | 免费看片网站91 | a天堂一码二码专区 | 久久大片 | 激情欧美日韩一区二区 | 黄色片软件网站 | 久久国产精品一二三区 | 婷婷av电影| 中文字幕av日韩 | 国产精品成久久久久 | 九九视频一区 | 伊人国产女 | 深夜视频久久 | av资源中文字幕 | 国产亚洲一区二区三区 | 91香蕉视频污在线 | 91热精品| 亚洲japanese制服美女 | 国产色拍 | 国产黄色片一级 | 婷香五月 | 国产在线高清视频 | 日日摸日日添日日躁av | 欧美国产一区二区 | 天天综合天天做天天综合 | 久久天堂影院 | 亚洲视频中文 | 亚洲免费在线观看视频 | 日日日天天天 | 免费黄色网址大全 | 亚洲黄色软件 | 久草com| 五月天综合在线 | 人人要人人澡人人爽人人dvd | av在线免费播放 | av线上看| 91久久人澡人人添人人爽欧美 | 人人澡人人草 | 午夜视频一区二区 | 激情偷乱人伦小说视频在线观看 | 国产成人精品999在线观看 | 亚洲国产中文字幕在线视频综合 | 久草在线视频免赞 | 精品一区 在线 | 亚洲另类人人澡 | 日韩不卡高清 | 国产原厂视频在线观看 | 欧美福利网站 | 精品国产久 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 婷婷激情影院 | 久久久久美女 | 久久国产影院 | 欧美超碰在线 | 97精品一区二区三区 | 少妇高潮流白浆在线观看 | 深夜免费网站 | 99国内精品 | 亚州天堂 | 国产精品一区二区三区视频免费 | 天天天干夜夜夜操 | 麻豆果冻剧传媒在线播放 | 国产精品成人av电影 | 中文字幕第一 | 色国产精品 | 免费在线观看黄色网 | 国产精品网在线观看 | 日日夜夜狠狠干 | japanesexxx乱女另类 | 国产在线日韩 | 久久久在线观看 | 午夜免费电影院 | 中文字幕在线观看视频免费 | 男女视频国产 | 成人影音在线 | 最新在线你懂的 | 亚洲精品国产综合99久久夜夜嗨 | 国产精品 中文在线 | 久久99精品国产99久久6尤 | 麻豆一精品传二传媒短视频 | 国产成人一区二区精品非洲 | 精品久久久999 | 91色蜜桃 | 久久 在线 | 国产精品不卡在线播放 | 一级大片在线观看 | 亚洲精品裸体 | 在线观看 国产 | 在线免费观看羞羞视频 | 日韩免费观看一区二区三区 | 色老板在线| 色a综合 | 精品主播网红福利资源观看 | 欧美色噜噜噜 | 在线观看成人av | 日韩欧美亚州 | 日韩av成人免费看 | 国产成人三级在线观看 | 丁香花五月| 超碰97中文 | av色网站 | 亚洲黄网站 | av不卡中文字幕 | 精品国产成人在线影院 | 色婷婷丁香 | 国产精品久久久久久久久久99 | 久久女同性恋中文字幕 | 欧美高清成人 | 免费黄色网址大全 | 久久色网站 | 久久久国产在线视频 | 99热手机在线观看 | 国产91精品看黄网站在线观看动漫 | 免费视频18| 欧美久久电影 | 91在线精品播放 | 欧美久久久久 | 97视频在线播放 | 日本中文字幕在线 | 国产黄色理论片 | 精品在线观看一区二区 | 国产精品久久久免费 | 国产精品久久久久久久久久了 | 国产香蕉视频在线播放 | 一区二区三区不卡在线 | 特级黄色片免费看 | 欧美99热 | 午夜黄网 | 久久亚洲区 | 久久免费精品一区二区三区 | 一区在线播放 | 天堂网在线视频 | 91九色成人| 亚洲欧洲精品视频 | 操操操夜夜操 | 7799av| 日本中文字幕一二区观 | 日韩肉感妇bbwbbwbbw | 手机在线小视频 | 国产精品一区二区免费看 | 欧美精品久久久久久久久久久 | 在线草 | 综合色婷婷 | 国产网红在线观看 | 91麻豆高清视频 | av官网 | 国产美女精品人人做人人爽 | 波多野结衣在线中文字幕 | 91一区啪爱嗯打偷拍欧美 | 国产精品一区在线观看你懂的 | 精品久久一区二区 | 一级精品视频在线观看宜春院 | 久久精品五月 | 九九影视理伦片 | 午夜视频在线观看一区二区三区 | 在线免费观看视频一区二区三区 | av超碰在线 | 精品国产1区 | 国产成人久久av977小说 | 四虎永久免费网站 | 日本性xxxxx 亚洲精品午夜久久久 | 天天干夜夜夜操天 | 日韩国产欧美在线播放 | 国产精品久久久免费看 | 日本三级吹潮在线 | av手机在线播放 | 日韩精品一区二区三区视频播放 | 精品成人免费 | 久久精品视频中文字幕 | 久久这里只精品 | 亚洲高清av在线 | 91久久丝袜国产露脸动漫 | 国产精品视频全国免费观看 | 免费观看国产成人 | av免费电影在线观看 | 亚洲人久久久 | 激情久久久久 | 精品久久久成人 | 亚洲精品大全 | 国产福利a | 毛片网在线播放 | 2019天天干夜夜操 | 国产一区在线播放 | 日韩午夜小视频 | 日韩精品一区二区三区在线播放 | 草久中文字幕 | 久久国产一区二区三区 | 欧美国产高清 | 亚州免费视频 | 久草a视频 | 九九热只有这里有精品 |