在资源中配置 Spring Integration XML.xml来自 Config.groovy



我有一个Grails应用程序,它有一些小的UI组件和域访问,但大多数情况下,它正在运行一个Spring Integration过程来轮询和阅读电子邮件并处理结果。

我希望能够根据环境配置电子邮件目标。

我在resources.xml中有以下 Spring Integration XML 代码段:

<mail:inbound-channel-adapter id="imapAdapter"
          store-uri="imaps://myEmailAddress:myPassword@imap.gmail.com/INBOX"
          java-mail-properties="javaMailProperties"
          channel="receiveEmailChannel"
          should-delete-messages="false"
          should-mark-messages-as-read="true"
          auto-startup="true">
    <int:poller max-messages-per-poll="1" fixed-rate="15" time-unit="SECONDS">
    </int:poller>
</mail:inbound-channel-adapter>

我在Config.groovy有以下特定于环境的配置片段:

environments {
    development {
        email.store.ui = 'imaps://myDevEmailAddress:myDevPassword@imap.gmail.com/INBOX'
    }
    test {
        email.store.ui = 'imaps://myTestEmailAddress:myTestPassword@imap.gmail.com/INBOX'
    }
    production {
        email.store.ui = 'imaps://myProdEmailAddress:myProdPassword@imap.gmail.com/INBOX'
    }
}    

如何将Config.groovy中的email.store.ui定义与resources.xml中的store-ui属性相关联?

Grails 设置了一个从 Config.groovy 获取其值的PropertyPlaceholderConfigurer,因此正常的 Spring 属性占位符语法应该有效

store-uri="${email.store.ui}"
我想

我应该读到页面底部...答案在第 15.5 节属性占位符配置

我只需要:

<mail:inbound-channel-adapter id="imapAdapter"
          store-uri="${email.store.ui}"
          java-mail-properties="javaMailProperties"
          channel="receiveEmailChannel"
          should-delete-messages="false"
          should-mark-messages-as-read="true"
          auto-startup="true">
    <int:poller max-messages-per-poll="1" fixed-rate="15" time-unit="SECONDS">
    </int:poller>
</mail:inbound-channel-adapter>

感谢您的轻推。

相关内容

  • 没有找到相关文章

最新更新