由于AMQ资源适配器的限制,如果在应用程序中尝试覆盖与连接工厂相关的属性,则覆盖将不起作用。但是,这个问题有一个简单的解决方案:在应用程序中使用队列连接工厂代替AMQ资源适配器。
以下是使用队列连接工厂的示例代码,以便能够覆盖工厂的属性:
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); ((ActiveMQConnectionFactory)factory).setUserName("admin"); ((ActiveMQConnectionFactory)factory).setPassword("password"); ((ActiveMQConnectionFactory)factory).setUseCompression(true);
通过使用这种方式,我们可以覆盖连接工厂的属性并使它们生效。