1

システム環境を設定して、プロパティ ファイルを外部から読み込もうとしています。

私のconfig.groovyファイルでは、

  println "Config file location --->" + System.getenv("SAM_ENV")
  grails.config.locations = ["file:"+ System.getenv("SAM_ENV")]

システム env SAM_ENV 値を C:\test\config.properties に設定しました。

アプリケーションを実行しようとすると、印刷値が次のように取得されます

     Config file location ---> C:\test\config.properties prints properly.

問題は、コントローラーのプロパティファイルにアクセスしようとしたときです

        print "PAGINATION1"+grailsApplication.config.PAGINATION1

PAGINATION1 の値が正しく印刷されていません。

grails アプリケーションで外部プロパティ ファイルにアクセスするには、どのような構成を行う必要があるか教えてください。

4

2 に答える 2

0
Add the below line in config.groovy

grails.config.locations = [ "classpath:grails-app-config.properties"]

environments {
    development {   
        grails.logging.jul.usebridge = true
        grails.config.locations = ["file:C:\\conf\\externalfile.groovy"]
    }
    production {
        grails.logging.jul.usebridge = false
        grails.config.locations = ["file:/opt/config/externalfile.groovy"]
        // TODO: grails.serverURL = "http://www.changeme.com"
    }
}

If you want to access any property from external configuration(config.groovy) then just declare the property like 

property = property value eg:(ImagePath = "C:\\Users\\Saved Pictures")

access it like grailsApplication.config."property"

eg:(grailsApplication.config.ImagePath)

NOTE: dont use def just a property and its value.
于 2017-09-16T18:26:21.113 に答える
-1

探しているのはクラスパスを拡張することです。これは、_Events.groovyにコンパイル後のイベントを追加することで実現できます。これを試して:

eventCompileEnd = {
ant.copy(todir:classesDirPath) {
     fileset(file:"C:\test\config.properties")
}}

あなたはここでより多くの助けを見つけることができます

于 2013-02-13T06:05:38.120 に答える