我想在我的應用程序中使用外部配置。隨着它,我使用郵件插件,並希望將其配置存儲在外部.property文件中。我chaged我的Config.groovy所以現在看起來對外部配置下USER_HOME/.grails/APP_NAME-configuration.properties:grails不讀取外部配置值
environments {
development {
grails.logging.jul.usebridge = true
if (new File("${userHome}/.grails/${appName}-config.properties").exists()) {
println "*** User defined config ***"
grails.config.locations = ["file:${userHome}/.grails/${appName}-config.properties"]
}
}
.....
}
正如你可以看到有哪些,如果測試語句是配置文件存在。每當我看到「*用戶定義的配置文件*」消息時,它就存在於應用程序啓動時。
我在開發模式下運行應用程序。經過我的郵件插件的構雲:
grails {
mail {
host = grailsApplication.config['mail']['host']
port = grailsApplication.config['mail']['host']
username = grailsApplication.config['mail']['username']
password = grailsApplication.config['mail']['password']
props = ["mail.smtp.auth": "true",
"mail.smtp.socketFactory.port": "465",
"mail.smtp.socketFactory.class": "javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback": "false"]
}
}
當我試圖發送一個消息,電子郵件插件似乎電子郵件插件該配置未初始化 - 用戶名,密碼= null,並且主機,端口都有默認值( localhost和-1)。所以在我看來,config.properties文件是根本沒有加載。我決定檢查config.properties是否已經加載,並發現grailsApplication.config對象包含我在config.properties中定義的所有屬性:mail.host,mail.port,mail.username,mail.password。我檢查了是否可以使用grailsApplication.config ['property'] ['name']表達式(在調試模式下)獲得相應的屬性。該表達式爲所有mail.host,mail.port,mail.username和mail.password提供了適當的值。我也嘗試使用grailsApplication.config ['property.name'](帶有一對括號和'。'),但是這個變體不起作用。 有人可以幫我處理這種情況嗎?我花了差不多3次嘗試不同的變體,仍然沒有解決方案。謝謝。
外觀像新的File()總是創建新文件 – 2014-09-03 13:57:51
不,我檢查 – 2014-09-03 13:59:27
我認爲grails.config.locations必須是config.groovy的最後一行,因此它可以覆蓋所有內容 – 2014-09-03 14:00:46