0

grailsのいくつかのカスタムプロパティを外部化しようとしています。

一部の文字列プロパティを外部化してコードで使用する方法について明確な方法が見つかりません。誰か助けてくれませんか。

4

1 に答える 1

1

config.groovy で外部構成ファイルの場所を指定する必要があります。

たとえば、次のようにします。

if (!grails.config.locations || !(grails.config.locations instanceof List)) {
    grails.config.locations = []
}

// Internal Jetty: config-files are locates inside the /web-app/WEB-INF directory
if( GrailsUtil.isDevelopmentEnv() ) {
    def dir = System.properties["base.dir"]
    def f1 = "${dir}" + File.separator + "web-app" + File.separator + "WEB-INF" + File.separator + "${appName}-config.groovy"
    grails.config.locations << "file:${f1}"
}

// TIER Tomcat: config-files are locates inside Tomcat's conf-directory
else if( System.properties["catalina.home"] ) {
    def dir = System.properties["catalina.home"]
    def f1 = "${dir}" + File.separator + "conf" + File.separator + "${appName}-config.groovy"
    grails.config.locations << "file:${f1}"
}

// JBOSS, Glassfish etc
else {
    //
}

// Further choices: command line argument (-D{$appName}.config.location=xxx)
if( System.properties["${appName}.config.location"] ) {
  grails.config.locations << "file:" + System.properties["${appName}.config.location"]
}

そのため、ローカル開発では、構成ファイルは WEB-INF ディレクトリの下にあります。人生を歩んでいる間、構成ファイルをどこに置くかについてさまざまな選択肢があります。必要に応じて、同じ方法で config.properties に対して機能するようにコードを変更できます。

于 2012-10-11T10:30:40.693 に答える