在Config.groovy的resources.xml中配置Spring Integration XML

时间:2012-08-27 19:53:26

标签: grails groovy spring-integration

我有一个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'
    }
}    

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

2 个答案:

答案 0 :(得分:3)

Grails设置PropertyPlaceholderConfigurerConfig.groovy获取其值,因此正常的Spring属性占位符语法应该可以正常工作

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

答案 1 :(得分:0)

我想我应该已经阅读了页面底部...答案在15.5 Property Placeholder Configuration

部分

我只是需要:

<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>

感谢你的推动。