org.springframework.amqp.core.Binding.getRoutingKey()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(12.9k)|赞(0)|评价(0)|浏览(124)

本文整理了Java中org.springframework.amqp.core.Binding.getRoutingKey()方法的一些代码示例,展示了Binding.getRoutingKey()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Binding.getRoutingKey()方法的具体详情如下:
包路径:org.springframework.amqp.core.Binding
类名称:Binding
方法名:getRoutingKey

Binding.getRoutingKey介绍

暂无

代码示例

代码示例来源:origin: com.dell.cpsd/hdp-capability-registry-client

/**
 * The message consumer for the service responses.
 * 
 * @return The message consumer for the service responses.
 * 
 * @since 1.0
 */
@Bean("name=capabilityRegistryServiceConsumer")
IAmqpCapabilityRegistryServiceConsumer capabilityRegistryServiceConsumer()
{
  final String replyTo = this.capabilityRegistryResponseQueueBinding.getRoutingKey();
  return new AmqpCapabilityRegistryServiceConsumer(replyTo);
}

代码示例来源:origin: com.dell.cpsd/hdp-capability-registry-client

/**
 * The message consumer for the service control messages.
 * 
 * @return The message consumer for the service responses.
 * 
 * @since 1.0
 */
@Bean
IAmqpCapabilityRegistryControlConsumer capabilityRegistryControlConsumer()
{
  final String replyTo = this.capabilityRegistryControlQueueBinding.getRoutingKey();
  return new AmqpCapabilityRegistryControlConsumer(replyTo, this.capabilityRegistryControlProducer);
}

代码示例来源:origin: com.dell.cpsd/common-rabbitmq

/**
 * Add a binding
 *
 */
public RabbitContextBuilder add(Binding binding)
{
  bindings.put(Arrays.toString(new String[] {binding.getExchange(), binding.getExchange(), binding.getRoutingKey()}), binding);
  return this;
}

代码示例来源:origin: com.dell.cpsd.common.messaging/common-rabbitmq

/**
 * Add a binding
 *
 */
public RabbitContextBuilder add(Binding binding)
{
  bindings.put(Arrays.toString(new String[] {binding.getExchange(), binding.getExchange(), binding.getRoutingKey()}), binding);
  return this;
}

代码示例来源:origin: spring-projects/spring-amqp

private boolean isImplicitQueueBinding(Binding binding) {
  return isDefaultExchange(binding.getExchange()) && binding.getDestination().equals(binding.getRoutingKey());
}

代码示例来源:origin: org.springframework.amqp/spring-rabbit

private boolean isImplicitQueueBinding(Binding binding) {
  return isDefaultExchange(binding.getExchange()) && binding.getDestination().equals(binding.getRoutingKey());
}

代码示例来源:origin: org.springframework.amqp/spring-rabbit

private void declareBindings(final Channel channel, final Binding... bindings) throws IOException {
  for (Binding binding : bindings) {
    if (this.logger.isDebugEnabled()) {
      this.logger.debug("Binding destination [" + binding.getDestination() + " (" + binding.getDestinationType()
          + ")] to exchange [" + binding.getExchange() + "] with routing key [" + binding.getRoutingKey()
          + "]");
    }
    try {
      if (binding.isDestinationQueue()) {
        if (!isDeclaringImplicitQueueBinding(binding)) {
          channel.queueBind(binding.getDestination(), binding.getExchange(), binding.getRoutingKey(),
              binding.getArguments());
        }
      }
      else {
        channel.exchangeBind(binding.getDestination(), binding.getExchange(), binding.getRoutingKey(),
            binding.getArguments());
      }
    }
    catch (IOException e) {
      logOrRethrowDeclarationException(binding, "binding", e);
    }
  }
}

代码示例来源:origin: spring-projects/spring-amqp

private void declareBindings(final Channel channel, final Binding... bindings) throws IOException {
  for (Binding binding : bindings) {
    if (this.logger.isDebugEnabled()) {
      this.logger.debug("Binding destination [" + binding.getDestination() + " (" + binding.getDestinationType()
          + ")] to exchange [" + binding.getExchange() + "] with routing key [" + binding.getRoutingKey()
          + "]");
    }
    try {
      if (binding.isDestinationQueue()) {
        if (!isDeclaringImplicitQueueBinding(binding)) {
          channel.queueBind(binding.getDestination(), binding.getExchange(), binding.getRoutingKey(),
              binding.getArguments());
        }
      }
      else {
        channel.exchangeBind(binding.getDestination(), binding.getExchange(), binding.getRoutingKey(),
            binding.getArguments());
      }
    }
    catch (IOException e) {
      logOrRethrowDeclarationException(binding, "binding", e);
    }
  }
}

代码示例来源:origin: com.bluelock/camel-spring-amqp

protected Binding declareBinding(org.springframework.amqp.core.Exchange exchange, Queue queue) {
    Binding binding = null;
    //Is this a header exchange? Bind the key/value pair(s)
    if(exchange instanceof HeadersExchange) {
      if(this.endpoint.routingKey == null)
        throw new IllegalStateException("Specified a header exchange without a key/value match");
      if(this.endpoint.routingKey.contains("|") && this.endpoint.routingKey.contains("&"))
        throw new IllegalArgumentException("You cannot mix AND and OR expressions within a header binding");
      Map<String, Object> keyValues = parseKeyValues(this.endpoint.routingKey);
      BindingBuilder.HeadersExchangeMapConfigurer mapConfig = BindingBuilder.bind(queue).to((HeadersExchange) exchange);
      if(this.endpoint.routingKey.contains("|"))
        binding = mapConfig.whereAny(keyValues).match();
      else
        binding = mapConfig.whereAll(keyValues).match();
    //Is this a fanout exchange? Just bind the queue and exchange directly
    } else if(exchange instanceof FanoutExchange) {
      binding = BindingBuilder.bind(queue).to((FanoutExchange) exchange);
    //Perform routing key binding for direct or topic exchanges
    } else {
      binding = BindingBuilder.bind(queue).to(exchange).with(this.endpoint.routingKey).noargs();
    }
    if (this.endpoint.isUsingDefaultExchange()) {
      LOG.info("Using default exchange for endpoint {}.  Default exchange is implicitly bound to every queue, with a routing key equal to the queue name.", endpoint);
    } else if (binding != null) {
      LOG.info("Declaring binding {} for endpoint {}.", binding.getRoutingKey(), endpoint);
      this.endpoint.getAmqpAdministration().declareBinding(binding);
    }
    return binding;
  }
}

代码示例来源:origin: org.springframework.amqp/spring-rabbit

@Override
@ManagedOperation(description =
    "Remove a binding from the broker (this operation is not available remotely)")
public void removeBinding(final Binding binding) {
  this.rabbitTemplate.execute(channel -> {
    if (binding.isDestinationQueue()) {
      if (isRemovingImplicitQueueBinding(binding)) {
        return null;
      }
      channel.queueUnbind(binding.getDestination(), binding.getExchange(), binding.getRoutingKey(),
          binding.getArguments());
    }
    else {
      channel.exchangeUnbind(binding.getDestination(), binding.getExchange(), binding.getRoutingKey(),
          binding.getArguments());
    }
    return null;
  });
}

代码示例来源:origin: spring-projects/spring-amqp

@Override
@ManagedOperation(description =
    "Remove a binding from the broker (this operation is not available remotely)")
public void removeBinding(final Binding binding) {
  this.rabbitTemplate.execute(channel -> {
    if (binding.isDestinationQueue()) {
      if (isRemovingImplicitQueueBinding(binding)) {
        return null;
      }
      channel.queueUnbind(binding.getDestination(), binding.getExchange(), binding.getRoutingKey(),
          binding.getArguments());
    }
    else {
      channel.exchangeUnbind(binding.getDestination(), binding.getExchange(), binding.getRoutingKey(),
          binding.getArguments());
    }
    return null;
  });
}

代码示例来源:origin: com.dell.cpsd/common-rabbitmq

/**
 * Register a produce message class and consumme class pair. This is useful because a listener queue will be bound with the
 * producer routing key for replies
 *
 */
public <P> RabbitContextBuilder requestsAndReplies(Class<P> requestClass, String queueName, boolean durable, String containerAlias,
    Object listener, Class<?>... replyClasses)
{
  produces(requestClass);
  MessageDescription<P> requestDescription = messageDescriptionFactory.createDescription(requestClass);
  descriptions.put(requestDescription.getType(), requestDescription);
  for (Class<?> replyClass : replyClasses)
  {
    MessageDescription replyDescription = messageDescriptionFactory.createDescription(replyClass);
    descriptions.put(replyDescription.getType(), replyDescription);
    addQueueData(containerAlias, queueName, listener);
    MessageBindingBuilder replyBindingBuilder = new MessageBindingBuilder(this,
        resolveRoutingKey(replyDescription.getStereotype(), requestDescription.getRoutingKey(), consumerPostfix));
    Binding replyBinding = replyBindingBuilder.fromExchange(replyDescription.getExchange(), replyDescription.getExchangeType())
        .toQueue(queueName, durable).bind();
    replyToMap.put(new RequestReplyKey(requestClass, replyClass), replyBinding.getRoutingKey());
  }
  return this;
}

代码示例来源:origin: com.dell.cpsd.common.messaging/common-rabbitmq

/**
 * Register a produce message class and consumme class pair. This is useful because a listener queue will be bound with the
 * producer routing key for replies
 *
 */
public <P> RabbitContextBuilder requestsAndReplies(Class<P> requestClass, String queueName, boolean durable, String containerAlias,
    Object listener, Class<?>... replyClasses)
{
  produces(requestClass);
  MessageDescription<P> requestDescription = messageDescriptionFactory.createDescription(requestClass);
  descriptions.put(requestDescription.getType(), requestDescription);
  for (Class<?> replyClass : replyClasses)
  {
    MessageDescription replyDescription = messageDescriptionFactory.createDescription(replyClass);
    descriptions.put(replyDescription.getType(), replyDescription);
    addQueueData(containerAlias, queueName, listener);
    MessageBindingBuilder replyBindingBuilder = new MessageBindingBuilder(this,
        resolveRoutingKey(replyDescription.getStereotype(), requestDescription.getRoutingKey(), consumerPostfix));
    Binding replyBinding = replyBindingBuilder.fromExchange(replyDescription.getExchange(), replyDescription.getExchangeType())
        .toQueue(queueName, durable).bind();
    replyToMap.put(new RequestReplyKey(requestClass, replyClass), replyBinding.getRoutingKey());
  }
  return this;
}

代码示例来源:origin: spring-projects/spring-amqp

@Test
public void customBinding() {
  class CustomExchange extends AbstractExchange {
    CustomExchange(String name) {
      super(name);
    }
    @Override
    public String getType() {
      return "x-custom";
    }
  }
  Object argumentObject = new Object();
  CustomExchange customExchange = new CustomExchange("c");
  String routingKey = "r";
  Binding binding = BindingBuilder.//
      bind(queue).//
      to(customExchange).//
      with(routingKey).//
      and(Collections.<String, Object>singletonMap("k", argumentObject));
  assertNotNull(binding);
  assertEquals(argumentObject, binding.getArguments().get("k"));
  assertEquals(customExchange.getName(), binding.getExchange());
  assertEquals(Binding.DestinationType.QUEUE, binding.getDestinationType());
  assertEquals(queue.getName(), binding.getDestination());
  assertEquals(routingKey, binding.getRoutingKey());
}

代码示例来源:origin: spring-projects/spring-amqp

@Test
public void fanoutBinding() {
  FanoutExchange fanoutExchange = new FanoutExchange("f");
  Binding binding = BindingBuilder.bind(queue).to(fanoutExchange);
  assertNotNull(binding);
  assertEquals(fanoutExchange.getName(), binding.getExchange());
  assertEquals("", binding.getRoutingKey());
  assertEquals(Binding.DestinationType.QUEUE, binding.getDestinationType());
  assertEquals(queue.getName(), binding.getDestination());
}

代码示例来源:origin: spring-projects/spring-amqp

@Test
public void directBinding() {
  DirectExchange directExchange = new DirectExchange("d");
  String routingKey = "r";
  Binding binding = BindingBuilder.bind(queue).to(directExchange).with(routingKey);
  assertNotNull(binding);
  assertEquals(directExchange.getName(), binding.getExchange());
  assertEquals(Binding.DestinationType.QUEUE, binding.getDestinationType());
  assertEquals(queue.getName(), binding.getDestination());
  assertEquals(routingKey, binding.getRoutingKey());
}

代码示例来源:origin: spring-projects/spring-amqp

@Test
public void topicBinding() {
  TopicExchange topicExchange = new TopicExchange("t");
  String routingKey = "r";
  Binding binding = BindingBuilder.bind(queue).to(topicExchange).with(routingKey);
  assertNotNull(binding);
  assertEquals(topicExchange.getName(), binding.getExchange());
  assertEquals(Binding.DestinationType.QUEUE, binding.getDestinationType());
  assertEquals(queue.getName(), binding.getDestination());
  assertEquals(routingKey, binding.getRoutingKey());
}

代码示例来源:origin: spring-projects/spring-amqp

@Test
public void exchangeBinding() {
  DirectExchange directExchange = new DirectExchange("d");
  FanoutExchange fanoutExchange = new FanoutExchange("f");
  Binding binding = BindingBuilder.bind(directExchange).to(fanoutExchange);
  assertNotNull(binding);
  assertEquals(fanoutExchange.getName(), binding.getExchange());
  assertEquals(Binding.DestinationType.EXCHANGE, binding.getDestinationType());
  assertEquals(directExchange.getName(), binding.getDestination());
  assertEquals("", binding.getRoutingKey());
}

代码示例来源:origin: spring-projects/spring-amqp

@Test
public void directBindingWithQueueName() {
  DirectExchange directExchange = new DirectExchange("d");
  Binding binding = BindingBuilder.bind(queue).to(directExchange).withQueueName();
  assertNotNull(binding);
  assertEquals(directExchange.getName(), binding.getExchange());
  assertEquals(Binding.DestinationType.QUEUE, binding.getDestinationType());
  assertEquals(queue.getName(), binding.getDestination());
  assertEquals(queue.getName(), binding.getRoutingKey());
}

代码示例来源:origin: spring-projects/spring-amqp

@Test
public void headerBinding() {
  HeadersExchange headersExchange = new HeadersExchange("h");
  String headerKey = "headerKey";
  Binding binding = BindingBuilder.bind(queue).to(headersExchange).where(headerKey).exists();
  assertNotNull(binding);
  assertEquals(headersExchange.getName(), binding.getExchange());
  assertEquals(Binding.DestinationType.QUEUE, binding.getDestinationType());
  assertEquals(queue.getName(), binding.getDestination());
  assertEquals("", binding.getRoutingKey());
}

相关文章