下面列出了org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate#org.springframework.amqp.core.AmqpAdmin 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Bean
public InitializingBean prepareQueues(AmqpAdmin amqpAdmin) {
return () -> {
Queue queue = new Queue(NOTIFICATIONS, true);
DirectExchange exchange = new DirectExchange(NOTIFICATIONS);
Binding binding = BindingBuilder.bind(queue).to(exchange).with(NOTIFICATIONS);
amqpAdmin.declareQueue(queue);
amqpAdmin.declareExchange(exchange);
amqpAdmin.declareBinding(binding);
};
}
@Bean
public InitializingBean prepareQueues(AmqpAdmin amqpAdmin) {
return () -> {
Queue queue = new Queue(this.echoQueueAndExchangeName, true);
DirectExchange exchange = new DirectExchange(this.echoQueueAndExchangeName);
Binding binding = BindingBuilder.bind(queue).to(exchange)
.with(this.echoQueueAndExchangeName);
amqpAdmin.declareQueue(queue);
amqpAdmin.declareExchange(exchange);
amqpAdmin.declareBinding(binding);
};
}
/**
* RabbitMQの管理操作を実行する{@link AmqpAdmin}のインスタンスを生成し、DIコンテナに登録します。
* この{@link AmqpAdmin}を利用することにより、Exchange/Queueの自動生成を行うことが可能となります。
* 自動生成する場合はSpring のBeanProfileのスコープ指定を<strong>development</strong>に指定してください。
* @return {@link RabbitAdmin}のインスタンス
*/
@Bean
@Profile("development")
public AmqpAdmin amqpAdmin() {
RabbitAdmin rabbitAdmin = new RabbitAdmin(factory());
rabbitAdmin.setAutoStartup(true);
return rabbitAdmin;
}
@Before
public void setup() {
context = new AnnotationConfigApplicationContext(RabbitMQInitializerTestContext.class);
admin = context.getBean(AmqpAdmin.class);
initializer = new RabbitMQInitializer();
initializer.setAdmin(admin);
initializer.setContext(context);
initializer.setDeleted(true);
}
public RabbitTemplateMessageQueueFactory(
String elasticActorsCluster,
AmqpAdmin amqpAdmin,
RabbitTemplate rabbitTemplate) {
this.elasticActorsCluster = elasticActorsCluster;
this.amqpAdmin = amqpAdmin;
this.rabbitTemplate = rabbitTemplate;
this.exchangeName = String.format(EA_EXCHANGE_FORMAT, elasticActorsCluster);
}
public DeadLetterQueueCreator(AmqpAdmin rabbitAdmin) {
this.rabbitAdmin = rabbitAdmin;
}
public RepublishMessageRecovererExtend(AmqpTemplate errorTemplate, AmqpAdmin amqpAdmin) {
this.errorTemplate = errorTemplate;
this.deadLetterQueueCreator = new DeadLetterQueueCreator(amqpAdmin);
}
public void setRabbitAdmin(AmqpAdmin amqpAdmin) {
this.deadLetterQueueCreator = new DeadLetterQueueCreator(amqpAdmin);
}
void setRetryAmqpAdmin(AmqpAdmin amqpAdmin) {
this.retryAmqpAdmin = amqpAdmin;
}
@Bean
public AmqpAdmin amqpAdmin() {
return new RabbitAdmin(connectionFactory());
}
@Bean
public AmqpAdmin amqpAdmin(@Qualifier("springConnectionFactory") ConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory);
}
@Bean
public AmqpAdmin amqpAdmin(@Qualifier("springConnectionFactory") ConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory);
}
@Autowired
public void defineExchange(AmqpAdmin admin) {
admin.declareExchange(eventsExchange());
}
public AmqpAdmin getAmqpAdmin() {
return amqpAdmin;
}
@Bean
public AmqpAdmin amqpAdmin(ConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory);
}
@Bean
public AmqpAdmin amqpAdmin(@Qualifier("springConnectionFactory") ConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory);
}
@Bean
public AmqpAdmin amqpAdmin() {
return new RabbitAdmin(connectionFactory());
}
@Bean
public AmqpAdmin amqpAdmin() {
RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory());
return rabbitAdmin;
}
@Bean
public AmqpAdmin amqpAdmin()
{
return new RabbitAdmin(connectionFactory());
}
@Test
public void プロファイルが指定されていないときはRabbitAdminのインスタンスが生成されない() {
thrown.expect(NoSuchBeanDefinitionException.class);
context.getBean(AmqpAdmin.class);
}
@Test
public void プロファイルが指定されていないときはRabbitAdminのインスタンスが生成される() {
assertThat(context.getBean(AmqpAdmin.class), is(notNullValue()));
}
@Bean
public AmqpAdmin amqpAdmin() {
RabbitAdmin rabbitAdmin = new RabbitAdmin(factory());
rabbitAdmin.setAutoStartup(true);
return rabbitAdmin;
}
@Bean
public AmqpAdmin amqpAdmin() {
return new RabbitAdmin(connectionFactory());
}
public RabbitTemplateMessageQueueFactoryFactory(
AmqpAdmin amqpAdmin,
RabbitTemplate rabbitTemplate) {
this.amqpAdmin = amqpAdmin;
this.rabbitTemplate = rabbitTemplate;
}
@Bean
public RabbitTemplateMessageQueueFactoryFactory rabbitTemplateMessageQueueFactoryFactory(
AmqpAdmin amqpAdmin,
RabbitTemplate rabbitTemplate) {
return new RabbitTemplateMessageQueueFactoryFactory(amqpAdmin, rabbitTemplate);
}
public AmqpAdmin amqpAdmin() {
RabbitAdmin admin = new RabbitAdmin(connectionFactory());
admin.setAutoStartup(false);
return admin;
}
/**
* {@link AmqpAdmin} を設定します。
* @param admin {@link AmqpAdmin}
*/
public void setAdmin(AmqpAdmin admin) {
this.admin = admin;
}