我希望Grails'Mail插件从类路径中的外部属性文件中读取配置属性。我在Config.groovy中添加了这一行,
grails.config.locations = [
"classpath:app-${grails.util.Environment.current.name}-config.properties"]
我已将属性放在该文件中,
grails.mail.host = smtp.gmail.com
grails.mail.port = 465
grails.mail.username = username
grails.mail.password = password
这一切都很好。问题是,Mail插件需要一个Map类型的属性。如果我们把这个属性放在Config.groovy中,我看起来像这样,
grails {
mail {
props = ["mail.smtp.auth" : "true",
"mail.smtp.socketFactory.port" : "465",
"mail.smtp.socketFactory.class" : "javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback": "false"]
}
}
现在如果我把它放在外部文件中,如下,
grails.mail.props = ["mail.smtp.auth" : "true",
"mail.smtp.socketFactory.port" : "465",
"mail.smtp.socketFactory.class" : "javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback": "false"]
比它不起作用。我需要从外部文件中读取道具地图。我搜索了很多但是徒劳无功。感谢帮助。
答案 0 :(得分:4)
您可以从外部*.groovy
文件加载配置,您可以在Config.groovy
中添加地图等。创建示例mail-config.groovy
,其内容如下:
grails {
mail {
host = smtp.gmail.com
port = 465
username = username
password = password
props = ["mail.smtp.auth" : "true",
"mail.smtp.socketFactory.port" : "465",
"mail.smtp.socketFactory.class" : "javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback": "false"]
}
}
并指出Grails使用它:
grails.config.locations = ["classpath:mail-config.groovy"]