在 grails 服务中获取特定于环境的服务器应用 URL
Get environment specific server app URL in grails service
我想在 Groovy 中获取服务器 URL,如果我在我的本地环境中部署我希望它 link 到 localhost:8080
但是在测试和生活环境应该不同吧。在我的 Groovy 服务中有什么方法可以做到这一点吗?
你的Config.groovy
environments {
development {
grails.config.serverAppURL = YOUR_DEVELOPMENT_MODE_APP_URL
}
production {
grails.config.serverAppURL = YOUR_PRODUCTION_MODE_APP_URL
}
test {
grails.config.serverAppURL = YOUR_TEST_MODE_APP_URL
}
}
在您的服务中访问这个url
Class MyService {
def grailsApplication // inject this service
def testMethod(){
def appUrl = grailsApplication.config.serverAppURL // getting url here
println appUrl
}
}
配置您的 grails 应用程序
environments {
development {
grails.server.url = "localhost:8080"
}
production {
grails.server.url = "http://example.com"
}
test {
grails.server.url = "http://production.com"
}
}
您可以像这样使用 Holders 获取您的服务器 URL。
class something {
String getAppURL() {
String serverURL = Holders.flatConfig.get("grails.server.url")
return serverURL
}
}
我想在 Groovy 中获取服务器 URL,如果我在我的本地环境中部署我希望它 link 到 localhost:8080
但是在测试和生活环境应该不同吧。在我的 Groovy 服务中有什么方法可以做到这一点吗?
你的Config.groovy
environments {
development {
grails.config.serverAppURL = YOUR_DEVELOPMENT_MODE_APP_URL
}
production {
grails.config.serverAppURL = YOUR_PRODUCTION_MODE_APP_URL
}
test {
grails.config.serverAppURL = YOUR_TEST_MODE_APP_URL
}
}
在您的服务中访问这个url
Class MyService {
def grailsApplication // inject this service
def testMethod(){
def appUrl = grailsApplication.config.serverAppURL // getting url here
println appUrl
}
}
配置您的 grails 应用程序
environments {
development {
grails.server.url = "localhost:8080"
}
production {
grails.server.url = "http://example.com"
}
test {
grails.server.url = "http://production.com"
}
}
您可以像这样使用 Holders 获取您的服务器 URL。
class something {
String getAppURL() {
String serverURL = Holders.flatConfig.get("grails.server.url")
return serverURL
}
}