Spring 使用嵌入式 ActiveMQ Artemis JMS 服务器启动

Spring Boot with embedded ActiveMQ Artemis JMS server

我正在使用以下代码自定义嵌入式 ActiveMQ Artemis 服务器。

@Override
public void customize(org.apache.activemq.artemis.core.config.Configuration configuration)

它工作正常,我发现我以后可以像这样访问 ->

Queue queue =  embeddedActiveMQ.getActiveMQServer().locateQueue("queue");

QueueControl queueControl = new QueueControlImpl(queue,
                queue.getAddress().toString(),embeddedActiveMQ.getActiveMQServer(),embeddedActiveMQ.getActiveMQServer().getStorageManager()              ,embeddedActiveMQ.getActiveMQServer().getSecurityStore(),embeddedActiveMQ.getActiveMQServer().getAddressSettingsRepository());

queueControl.browse();

这样做有问题吗?

我正在尝试编写一个自定义端点来处理队列管理,而不是使用带有 Jolokia 的经典包。

从技术上讲,这样做并没有真正的问题,但可能有更好的方法来完成您想要的事情。例如,要获得一个 QueueControl 实例,您可以这样做:

QueueControl queueControl = embeddedActiveMQ.getActiveMQServer().getManagementService().getResource(ResourceNames.QUEUE + "queue");

这将获取已经为队列创建的QueueControl,而不是从头开始创建新队列。