我有基於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%無法爲我「點擊」。