我有一个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
属性绑定?
答案 0 :(得分:3)
Grails设置PropertyPlaceholderConfigurer
从Config.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>
感谢你的推动。