可以通过在代码中定义对应的配置信息来覆盖broker.xml中的默认设置。具体的代码示例如下:
Configuration config = new ConfigurationImpl();
config.addQueueConfiguration("myQueue", QueueConfigurationImpl.builder()
.address("myQueueAddress")
.routingType(RoutingType.ANYCAST)
.durable(false)
.autoCreateAddresses(false)
.autoCreateQueues(false)
.build());
其中,addQueueConfiguration方法可以添加队列的配置信息,比如上述代码添加了一个名为“myQueue”的队列,其中包含地址、路由类型、持久性、自动创建地址及自动创建队列这些配置信息。如果需要删除队列,可以调用以下代码:
final String queueName = "myQueue";
serverControl.destroyQueue(queueName);
其中,serverControl是通过ManagementContext获取的,用于控制ActiveMQ Artemis服务器的操作。通过这种方式,可以有效解决ActiveMQ Artemis不遵循broker.xml中队列设置的问题。