私は今、自分のプログラムが実行されているときに、データベース内のブール値フィールドを変更できる、rabbitmq、Spring、およびHibernateでプロジェクトを進めています。いつもSpringのrabbitmqキューを作成/バインドとアンバインド/削除する
trueの場合、私のプログラムは新しいキューを作成し、それに所定の交換をバインドします。
falseの場合、私のプログラムはキューをアンバインドして削除します。
しかし、私はすべて見ているチュートリアルはキューを作成するために、アノテーションを使用しているようだと、プログラムが最初に実行したときにバインディング:私の場合は、むしろ注釈を使用するよりも
import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Profile({"tut3", "pub-sub", "publish-subscribe"})
@Configuration
public class Tut3Config {
@Bean
public FanoutExchange fanout() {
return new FanoutExchange("tut.fanout");
}
@Profile("receiver")
private static class ReceiverConfig {
@Bean
public Queue autoDeleteQueue1() {
return new AnonymousQueue();
}
@Bean
public Queue autoDeleteQueue2() {
return new AnonymousQueue();
}
@Bean
public Binding binding1(FanoutExchange fanout,
Queue autoDeleteQueue1) {
return BindingBuilder.bind(autoDeleteQueue1).to(fanout);
}
@Bean
public Binding binding2(FanoutExchange fanout,
Queue autoDeleteQueue2) {
return BindingBuilder.bind(autoDeleteQueue2).to(fanout);
}
@Bean
public Tut3Receiver receiver() {
return new Tut3Receiver();
}
}
@Profile("sender")
@Bean
public Tut3Sender sender() {
return new Tut3Sender();
}
}
を、私はそのようなインタフェースを実装する必要がありますAmqpAdminとして定義し、declareQueue()やdeleteQueueなどのメソッドを明示的に使用してキューを作成および削除できるようにしますか?
これが当てはまる場合、Springはこれらのメソッドを実装するプロジェクトで特定の場所を持っていますか?
ありがとうございました。
フィルタベースのメッセージリスナーで1つのキューを使用しないのはなぜですか? –