RabbitMq在Spring

首先使用原生代码形式进行消息的发送和接收(这里不介绍RabbitMq的安装部署启动)
见代码

	public static void main(String[] args) {
	// 创建一个CachingConnectionFactory 使用hostname作为构造参数
        CachingConnectionFactory factory = new CachingConnectionFactory("127.0.0.1");
        // 不设置的账号密码的话,会使用默认账号密码 guest 
        factory.setPassword("admin");
        factory.setUsername("admin");
        // 这里创建一个RabbitAdmin实例,RabbitMQ实现了可移植的AMQP管理操作,用于AMQP 0.9.1
        RabbitAdmin rabbitAdmin = new RabbitAdmin(factory);
        // 声明给定的队列,非持久化。
        // 如果队列没有'name'属性值,则Broker将生成队列名称并从该方法返回。队列的declaredName属性将被更新以反映这个值。
        // 这个方法的分析见 清单 1-1 RabbitMqAdmin#declareQueue
        rabbitAdmin.declareQueue(new Queue("queue", false));
        // 获取RabbitTemplate 简化同步RabbitMQ访问(发送和接收消息)的Helper类
        RabbitTemplate rabbitTemplate = rabbitAdmin.getRabbitTemplate();
        rabbitTemplate.convertAndSend("queue", "foooc");
        String queue = (String) rabbitTemplate.receiveAndConvert("queue");
        System.out.println("queue===="+queue);
    }

清单 1-1 RabbitMqAdmin#declareQueue

声明给定的队列

public String declareQueue(final Queue queue) {
		try {
		// 这个rabbitTemplate是在创建RabbitAdmin的时候创建的
		// 这个方法的执行涉及到许多方法重载,执行过程见图 UML 1-1
			return this.rabbitTemplate.execute(channel -> {
				DeclareOk[] declared = declareQueues(channel, queue);
				return declared.length > 0 ? declared[0].getQueue() : null;
			});
		}
		catch (AmqpException e) {
			logOrRethrowDeclarationException(queue, "queue", e);
			return null;
		}
	}

	public RabbitAdmin(ConnectionFactory connectionFactory) {
		Assert.notNull(connectionFactory, "ConnectionFactory must not be null");
		this.connectionFactory = connectionFactory;
		this.rabbitTemplate = new RabbitTemplate(connectionFactory);
	}

在这里插入图片描述
。。。未完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值