2017-08-25 5 views
0

Spring Bootで書かれた以下のプログラムが正常に動作しています。しかし、問題は、RabbitTemplateAmqpTemplateのどちらを使用すべきかわかりません。オンラインの例/チュートリアルの一部はRabbitTemplateを使用し、その他のものはAmqpTemplateを使用します。RabbitTemplateまたはAmqpTemplateを使用するのはどちらですか?

ベストプラクティスとどちらを使用するかをご案内してください。

@SpringBootApplication 
public class BasicApplication { 

    private static RabbitTemplate rabbitTemplate; 
    private static final String QUEUE_NAME = "helloworld.q"; 

    //this definition of Queue is required in RabbitMQ. Not required in ActiveMQ 
    @Bean 
    public Queue queue() { 
     return new Queue(QUEUE_NAME, false); 
    } 

    public static void main(String[] args) { 
     try (ConfigurableApplicationContext ctx = SpringApplication.run(BasicApplication.class, args)) { 
      rabbitTemplate = ctx.getBean(RabbitTemplate.class); 
      rabbitTemplate.convertAndSend(QUEUE_NAME, "Hello World !"); 
     } 
    } 

} 

答えて

1

ほとんどの場合、Spring Beanの場合、何らかの理由でSpringがJDKプロキシを作成する場合は、このインタフェースを使用することをお勧めします。 RabbitTemplateではこれは珍しいので、どちらを使用するかは問題になりません。

場合によっては、RabbitTemplateのメソッドがインターフェイスに表示されないことがあります。それはあなたがそれを使う必要がある別の場合です。

しかし、一般的には、ユーザーコードがインターフェイスを使用することがベストプラクティスであるため、実装にハード依存関係はありません。

0

AmqpTemplateはインターフェイスです。 RabbitTemplateは、AmqpTemplateインターフェイスの実装です。あなたはRabbitTemplateを使うべきです。

関連する問題