gpt4 book ai didi

grails - 没有读取外部配置值

转载 作者:行者123 更新时间:2023-12-02 14:42:49 26 4
gpt4 key购买 nike

我想在我的应用程序中使用外部配置。与之一起,我使用邮件插件,并希望将其配置存储在外部.property文件中。我已经修改了Config.groovy,因此现在它在USER_HOME / .grails / APP_NAME-configuration.properties下寻找外部配置:

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"]
}
}
.....
}

如您所见,存在一个if语句,哪个测试是配置文件存在。它存在,所以每次在应用程序启动时我看到“ *用户定义的配置* ”消息。

我正在开发模式下运行应用程序。在完成我的邮件插件的配置后:
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']表达式(在 Debug模式下)获得相应的属性。该表达式为所有mail.host,mail.port,mail.username和mail.password提供了适当的值。我也尝试只使用grailsApplication.config ['property.name'](带有一对方括号和'。'),但是此变体不起作用。
有人可以帮我处理这种情况吗?我花了将近3次尝试不同的变体,但仍然没有解决方案。谢谢。

最佳答案

您无法从.properties文件加载 map 。您应该使用.groovy文件而不是.properties。
您可以从外部* .groovy文件中加载配置,在其中可以有 map 等。创建一个内容如下的文件...

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"]
}
}

并在您的config.groovy中使用它,
grails.config.locations = ["classpath:mail-config.groovy"]

关于grails - 没有读取外部配置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25646197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com