我有一个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>
感谢您的轻推。