1

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

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

我有以下 Spring Integration XML 片段resources.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定义与 inConfig.groovy中的store-ui属性联系起来resources.xml

4

2 回答 2

3

Grails 设置了从PropertyPlaceholderConfigurer中获取值的a Config.groovy,因此正常的 Spring 属性占位符语法应该可以工作

store-uri="${email.store.ui}"
于 2012-08-27T21:11:49.323 回答
0

我想我应该读到页面底部...答案在第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>

谢谢你的推动。

于 2012-08-27T21:11:57.627 回答