gpt4 book ai didi

Grails 外部配置。无法访问外部变量。总是[:]

转载 作者:行者123 更新时间:2023-12-02 09:40:23 31 4
gpt4 key购买 nike

我无法让“文件夹”外部变量工作。我总是得到[:]。

我正在 Windows 下的 Grails 上进行开发(这就是为什么外部配置文件看起来像 file:C:\path\to/file)

我在另一个项目中使用外部配置没有问题,与下面显示的方式相同。

我有这个:

Config.groovy:

environments {
development {
grails.config.locations = [ "file:${userHome}/.grails/${appName}-config.groovy" ]
}
}

myApp-config.groovy:

stats.feed.wsdl.folder = '/static'

Controller 和服务:

class WsdlController {
def wsdlService
def index = {
wsdlService.getEventsSchedule()
}
}

class WsdlService {
def grailsApplication

def getEventsSchedule = {
println "Locations: ${grailsApplication.config.grails.config.locations}"
println "Folder: ${grailsApplication.config.stats.feed.wsdl.folder}"
}
}

控制台:

Locations: [file:C:\Users\myUser/.grails/myApp-config.groovy]
Folder: [:]

有什么线索吗?

谢谢!

已更新!

这是整个 myApp-config.groovy:

println 'Start'
stats.feed.wsdl.folder = "/stats"
println 1
stats.feed.wsdl.folder.events = "${stats.feed.wsdl.folder}/events"
println 2
stats.feed.wsdl.folder.teams = "${stats.feed.wsdl.folder}/teams"
println 'End'

这不起作用,控制台显示:

Start
1

但是如果我更改变量名称,它就会起作用。

println 'Start'
stats.feed.wsdl.folder = "${playcall.static.resources.folder}/stats"
println 1
stats.feed.wsdl.events.folder = "${stats.feed.wsdl.folder}/events"
println 2
stats.feed.wsdl.teams.folder = "${stats.feed.wsdl.folder}/teams"
println 'End'

控制台:

Start
1
2
End

最佳答案

您创建一个属性并将其声明为字符串:

stats.feed.wsdl.folder = "/stats"

这样您就无法添加子属性。因此,为了让某些内容接近您想要的,您可以这样做:

stats.feed.wsdl.folder.base = "/stats"
stats.feed.wsdl.folder.events = "${stats.feed.wsdl.folder.base}/events"
stats.feed.wsdl.folder.teams = "${stats.feed.wsdl.folder.base}/teams"

关于Grails 外部配置。无法访问外部变量。总是[:],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648194/

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