在我看来,javaconfiguration类或基于XML的配置中的声明都是静态的。我知道如何为队列、交换或绑定设置更动态的值(例如名称),如下所示:
@Configuration
public class serverConfiguration {
private String queueName;
...
@Bean
public Queue buildQueue() {
Queue queue = new Queue(this.queueName, false, false, true, getQueueArguments());
buildRabbitAdmin().declareQueue(queue);
return queue;
}
...
}
但我想知道是否可以创建一个未定义数量的Queue实例,并将它们注册为bean,就像工厂注册它的所有实例一样。
我不太熟悉Spring@Bean注释及其局限性,但我尝试了
@Configuration
public class serverConfiguration {
private String queueName;
...
@Bean
@Scope("prototype")
public Queue buildQueue() {
Queue queue = new Queue(this.queueName, false, false, true, getQueueArguments());
buildRabbitAdmin().declareQueue(queue);
return queue;
}
...
}
Map<String, Queue> queueBeans = ((ListableBeanFactory) applicationContext).getBeansOfType(Queue.class);
name of the method := the last created instance.
您可以将bean动态添加到上下文中:
context.getBeanFactory().registerSingleton("foo", new Queue("foo"));
但管理员不会自动声明它们;您必须调用admin.initialize()
来强制它重新声明上下文中的所有AMQP元素。
您不会在@bean
中执行这两个操作,而只需要执行正常的运行时java代码。
交换:1个类型为“direct”的交换 队列:1个队列 绑定:队列绑定到Exchange 每当消息被发送到exchange时,它就会被传递到队列,辅助进程就会得到它们的任务。 每件东西都要经久耐用。 null 交换:1个具有“扇出”类型的交换 队列:n个队列,每个使用者一个 绑定:每个队列都需要绑定到Exchange 那么是谁安排了什么?在我看来: 生产者创建交换 使用者创建队列(因为它是自己的队
问题内容: 我对动态绑定和静态绑定感到非常困惑。我已经读过,在编译时确定对象的类型称为静态绑定,而在运行时确定它的称为动态绑定。 下面的代码会发生什么: 静态绑定还是动态绑定? 这表明什么样的多态性? 问题答案: 您的示例是 动态绑定 ,因为在运行时确定类型是什么,并调用适当的方法。 现在假设您也具有以下两种方法: 即使您更改为 这将打印出来,因为对的调用使用 静态绑定 ,并且编译器仅知道其类型。
因此,我的问题是面板被插入到JScrollPane中,这些面板的大小正在减小,但没有滚动条。 这是我的代码,我已经播种很远:
问题内容: 我使用jquery fancybox 1.3.4作为弹出表单。 但是我发现fancybox无法绑定到动态添加的元素。例如,当我向当前文档中添加html元素时。 像这样:首先我使用jquery将一个元素附加到主体, 我叫fancybox, 但fancybox不适用于动态添加的元素。 我不能从此元素调用fancybox吗? 问题答案: 将fancybox(v1.3.x)绑定到动态添加的元素
我有一个关于 IBM MQ 中使用的 .绑定文件的快速问题。我记得绑定文件指定队列名称。如果当前用作本地队列的队列名称后来更改为远程队列,但队列的名称保持不变并且权限也很好,则绑定文件是否正常工作?
我们知道静态绑定发生在私有、静态、最终和重载的方法上,而动态绑定发生在被覆盖的方法上。但是如果我的方法只是公共的,它既不是静态的,也不是覆盖和重载的怎么办? 有人能给我解释一下print()的绑定会怎样,因为它既没有重载也没有被覆盖。