在grails服务中获取特定于环境的服务器应用URL

时间:2018-03-30 09:26:31

标签: grails groovy

我想在Groovy中获取服务器URL,如果我在本地环境中部署,我希望它链接到localhost:8080,但在测试和实时环境中它应该是不同的。有没有办法在我的Groovy服务中执行此操作?

2 个答案:

答案 0 :(得分:3)

您的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
    }
}

在您的服务中访问此网址

Class MyService {
   def grailsApplication // inject this service

   def testMethod(){
    def appUrl = grailsApplication.config.serverAppURL // getting url here
    println appUrl
   }

}

答案 1 :(得分:0)

配置grails应用程序

environments {
    development {
         grails.server.url = "localhost:8080"
    }
    production {
         grails.server.url = "http://example.com"
    }
    test {
         grails.server.url = "http://production.com"
    }
}

您可以像这样使用Holder获取服务器URL。

class something {

    String getAppURL() {
      String serverURL = Holders.flatConfig.get("grails.server.url")
      return serverURL
    }
}