32.1.3 HornetQ支持

HornetQ在1.4版本已过期,可以考虑迁移到artemis

如果在classpath下发现HornetQ,Spring Boot会自动配置ConnectionFactory。如果需要代理,将会开启一个内嵌的,已经自动配置好的代理(除非显式设置mode属性)。支持的modes有:embedded(显式声明使用内嵌的代理,如果该代理在classpath下不可用将出错),native(使用netty传输协议连接代理)。当后者被配置,Spring Boot配置一个连接到代理的ConnectionFactory,该代理运行在使用默认配置的本地机器上。

:如果使用spring-boot-starter-hornetq,连接到一个已存在的HornetQ实例所需的依赖都会被提供,同时还有用于集成JMS的Spring基础设施。将org.hornetq:hornetq-jms-server添加到应用中,你就可以使用embedded模式。

HornetQ配置被spring.hornetq.*中的外部配置属性所控制,例如,在application.properties声明以下片段:

  1. spring.hornetq.mode=native
  2. spring.hornetq.host=192.168.1.210
  3. spring.hornetq.port=9876

当内嵌代理时,你可以选择是否启用持久化,并且列表中的目标都应该是可用的。这些可以通过一个以逗号分割的列表来指定一些默认的配置项,或定义org.hornetq.jms.server.config.JMSQueueConfigurationorg.hornetq.jms.server.config.TopicConfiguration类型的bean(s)来配置更高级的队列和主题,具体参考HornetQProperties

没有涉及JNDI查找,目标是通过名字解析的,名字即可以使用HornetQ配置中的name属性,也可以是配置中提供的names。