我相信我在玩了一段时间后才明白这一点。我以为有两个实例正在运行,因为我试图创建与DEFAULT嵌入式代理的连接(试图确定它是否已创建/存在),如下所示:
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
但是显然Spring Boot认为当时不存在并创建它。
因此,为了只运行我创建的实例,我要做的就是提供一个tcp://localhost:61616
在application.properties
文件中创建实例时(在本例中)添加到连接器的URL ,如下所示
spring.activemq.broker-url=tcp://localhost:61616
然后Spring Boot将连接到该实例,而不创建另一个实例。在属性文件中缺少上述条目的情况下(或者,如果您像我上面那样尝试使用vm:// localhost?…连接到嵌入式实例),Spring Boot将继续为您实例化一个实例。
当Spring Boot检测到ActiveMQ在类路径上可用时,它也可以配置ConnectionFactory。如果存在代理,则将自动启动并配置嵌入式代理(只要未通过配置指定代理URL)。
但是在我看来,它并没有很好地阐明(但是确实让我思考了正确的方向)。
请告诉我们您是否有不同的发现或我的结论是否正确。谢谢!!!