我有基于Spring的组件,需要能够通过JMS进行通信,并且希望使用@JmsListener
注释的方法来完成此操作。我的监听器类需要读取JSON编码的有效负载,但还需要读取一些自定义标题。 我已经设置了一个@Configuration
bean,并将它添加到当前基于XML的配置中,在该配置中我配置了必要的消息转换器。目前我的监听方法的注解如下:在Spring中配置目标名称@JmsListener
@JmsListener(destination = "activemq:queue:queue.name")
public void handleItemCommand(ProvisionItemCommand itemCommand, @Header(AUTH_HEADER_NAME) String auth) {
这一切工作,但显然队列名称不能被硬编码的,它必须是可配置的。使事情复杂化,我们使用一些自定义类来读取配置数据,因此使用@PropertySource
和属性文件是不可能的。
我一直在被卡住的地方是看到如何设置,所以这可能发生。 Spring 4.2参考文档告诉我创建并注册一个自定义PropertySource
类(可以由我们的自定义配置代码支持),但文档中的示例(http://docs.spring.io/spring/docs/4.1.9.RELEASE/spring-framework-reference/htmlsingle/#beans-property-source-abstraction)仅仅是创建应用程序上下文并添加自定义属性源对此。 也许我在这里开发了一个盲点,但是如何创建自定义属性源并将其添加到已经存在的环境中?我在网络上发现了几个不完整的例子,但大多数都是针对Spring 3的,有些似乎是矛盾的。 如果有人能够清除这个问题,我会很感激,因为我认为我99%在那里,但不知何故最终的1%无法为我“点击”。