springboot项目,@Test写法 @Before @After

某文件示例

复制代码
package cn.xxx.crm.boss;

import cn.xxxx.crm.manager.mq.rabbit.AliyunCredentialsProvider;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeoutException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

/**
 * @author zss
 * @date 2022/4/25 14:55
 * @Email:451682479@qq.com
 */
public class MqTest {

    public static final String HOST = "qwer.mq-amqp.cn-hangzhou-111111-a.aliyuncs.com";
    public static final String resourceOwnerId = "qwert";
    public static final String USERNAME = "aaaaa";
    public static final String PASSWORD = "xxxx";
    public static final String V_HOST = "DevCrmHost1";
    public static final int PORT = 5672;

    private ConnectionFactory factory;
    private Connection connection;

    @Before
    public void before() {
        factory = new ConnectionFactory();
        factory.setHost(HOST);
        factory.setPort(PORT);
        factory.setVirtualHost(V_HOST);
        factory.setUsername(USERNAME);
        factory.setPassword(PASSWORD);

        AliyunCredentialsProvider credentialsProvider = new AliyunCredentialsProvider(
            USERNAME, PASSWORD, resourceOwnerId);
        factory.setCredentialsProvider(credentialsProvider);
        factory.setAutomaticRecoveryEnabled(true);
        factory.setNetworkRecoveryInterval(5000);
        // 基于网络环境合理设置超时时间。
        factory.setConnectionTimeout(30 * 1000);
        factory.setHandshakeTimeout(30 * 1000);
        factory.setShutdownTimeout(0);

    }


    @After
    public void after() throws IOException {
        if (null != connection) {
            connection.close();
        }
    }


    @Test
    public void test() throws IOException, TimeoutException {
        connection = factory.newConnection();
        Channel channel = connection.createChannel();

        channel.exchangeDeclare("test-direct-exchange", "direct", true, false, false, null);
        channel.queueDeclare("test-queue1", true, false, false, new HashMap<String, Object>());
        channel.queueBind("test-queue1", "test-direct-exchange", "aaaa");
        // 开始发送消息。
        for (int i = 0; i < 100; i++) {
            // ${ExchangeName}必须在消息队列RabbitMQ版控制台上已存在,并且Exchange的类型与控制台上的类型一致。
            // BindingKey根据业务需求填入相应的BindingKey。
            AMQP.BasicProperties props = new AMQP.BasicProperties.Builder().messageId(UUID.randomUUID().toString())
                .build();
            channel.basicPublish("test-direct-exchange", "aaaa", true, props,
                ("消息发送Body" + i).getBytes(StandardCharsets.UTF_8));

            String a = "消息发送Body" + i;
            System.out.println(a);

        }
    }
}
相关推荐
今年下半年10 分钟前
SpringBoot整合金蝶中间件
spring boot·中间件·maven
字节探索33 分钟前
别再只会写 Controller 了!一文吃透 Spring Boot 高级特性与项目实战
spring boot·spring
MetaLite1 小时前
全网最好的SpringBoot接口请求对象设计
java·spring boot·后端
摇滚侠2 小时前
《Spring Boot 3:高级与架构设计》第 2 章 IOC容器的高级机制 BeanFactoryPostProcessor 个人理解 6
java·spring boot·笔记·后端
xcl09253 小时前
宠物商城社交托运购物系统开发实战:从架构设计到完整实现指南
java·spring boot
没差c3 小时前
RetrofitClient写接口、导包、配置、路径
java·spring boot·okhttp
RuoyiOffice4 小时前
SpringBoot+Vue3 节日主题换肤实战:一条参数换全站配色,节后自动还原
spring boot·vue3·spring boot 3·vben admin·ruoyi office·节日主题·换肤方案
摇滚侠4 小时前
《Spring Boot 3:高级与架构设计》第 2 章 IOC容器的高级机制 Environment 个人理解 4
java·spring boot·笔记·后端
遨游DATA4 小时前
Spring 接口返回 errorMessage=null:如何排查二次异常覆盖原始业务错误
spring boot·异常处理·接口排障
+VX:Fegn08955 小时前
计算机毕业设计|基于springboot + vue图书借阅管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计