中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在spring單元測試中模擬rabbitmq

發布時間:2021-05-31 17:30:28 來源:億速云 閱讀:266 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關如何在spring單元測試中模擬rabbitmq,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

gradle添加引用

compile   'org.springframework.boot:spring-boot-starter-amqp'
testCompile 'com.github.fridujo:rabbitmq-mock:1.0.10'

添加bean對象

/**
 * 模擬rabbitmq.
 */
@ActiveProfiles("test")
@Component
public class RabbitMqMock {
 @Bean
 public ConnectionFactory connectionFactory() {
  return new CachingConnectionFactory(MockConnectionFactoryFactory.build());
 }
}

添加測試的隊列

public static final String LIND_EXCHANGE = "test.basic.exchange";
 public static final String LIND_QUEUE_ROUTEKEY = "test.basic.*";
 public static final String LIND_QUEUE_ROUTEKEY1 = "test.basic.a1";
 public static final String LIND_QUEUE_ROUTEKEY2 = "test.basic.a2";
 
 /**
  * 創建普通交換機.
  */
 @Bean
 public TopicExchange lindExchange() {
  return (TopicExchange) ExchangeBuilder.topicExchange(LIND_EXCHANGE).durable(true)
    .build();
 }

 @Bean
 public Queue key1() {
  return new Queue(LIND_QUEUE_ROUTEKEY1);
 }

 @Bean
 public Queue key2() {
  return new Queue(LIND_QUEUE_ROUTEKEY2);
 }

 /**
  * 綁定了routekey,一個routekey可以被多個隊列綁定,類似于廣播.
  *
  * @return
  */
 @Bean
 public Binding bindBuildersRouteKey1() {
  return BindingBuilder.bind(key1())
    .to(lindExchange())
    .with(LIND_QUEUE_ROUTEKEY);
 }

 /**
  * bind.
  *
  * @return
  */
 @Bean
 public Binding bindBuildersRouteKey2() {
  return BindingBuilder.bind(key2())
    .to(lindExchange())
    .with(LIND_QUEUE_ROUTEKEY);
 }
 @Autowired
 private RabbitTemplate rabbitTemplate;

 /**
  * 發送撥打電話消息.
  */
 public void publish(String message) {
  try {
   rabbitTemplate
     .convertAndSend(MqConfig.LIND_EXCHANGE, MqConfig.LIND_QUEUE_ROUTEKEY,
       message);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
  /**
  * subscriber.
  *
  * @param data .
  */
 @RabbitListener(queues = MqConfig.LIND_DEAD_QUEUE)
 public void customerSign(String data) {
  try {

   logger.info("從隊列拿到數據 :{}", data);

  } catch (Exception ex) {
   logger.error("簽約同步異常", ex);
  }
 }

關于如何在spring單元測試中模擬rabbitmq就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建水县| 南通市| 临夏县| 大安市| 兴宁市| 三明市| 阿拉善右旗| 南昌市| 平安县| 温州市| 镇康县| 晋州市| 烟台市| 聂拉木县| 伊金霍洛旗| 桓仁| 卓资县| 乐亭县| 根河市| 静海县| 翼城县| 桃园县| 凉城县| 上饶市| 蒙山县| 淅川县| 永新县| 龙井市| 汉沽区| 柳州市| 九江市| 南投市| 平和县| 苗栗市| 龙泉市| 新平| 扶沟县| 鹿泉市| 内黄县| 肃北| 张家口市|