2

私はEclipseプラグインを使用してGWT 1.7 + GAEアプリケーションを構築しています。システム定数は、...gwt.i18n.client.Constants クラスを拡張するシングルトン MyConstants クラスによってロードされる MyConstants.properties ファイルにロードされます。

MyConstants に、次のような設定を含むいくつかのファイルのいずれかをロードさせたい

  • MyConstants-local.properties
  • MyConstants-alpha.properties
  • MyConstants-beta.properties
  • MyConstants-prod.properties

Guice の Enum Stage への参照をいくつか見つけましたが、これは gin ではサポートされていないようです。さらに、dev/prod のみを処理するため、ローカル/ベータ/prod ソリューションが絶対に必要です。

コマンド ライン引数または GAE にロードされたときに機能する他のインスタンス定義のランタイム パラメータを使用してこれを行う方法はありますか?

4

4 に答える 4

1

これを解決するには、特別に作成されたタイプセーフなインターフェースを使用する必要があります...

if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production)
{
  //It's production.
}
else
{
  //It's Dev - and (SystemProperty.environment.value() == SystemProperty.Environment.Value.Development)
}
于 2011-11-17T14:45:45.400 に答える
0

GAE SERVER_SOFTWARE変数を取得するための上記の回答について。SERVER_SOFTWARE 環境変数は CGI のデフォルトであるため、Web サーバー設定であり、システム環境変数からはアクセスできませんが、ServletContext からは利用できます。

必要な値を取得するコードは次のとおりです(ServerSoftwareではなくServerInfoである理由はわかりません...):

if (getServletContext().getServerInfo().startsWith("Dev")) {
  // Load MyConstants-dev.properties
} else {
  // Load MyConstants-prod.properties
}
于 2010-06-28T18:00:20.740 に答える
0

One thing that's different between the development and deployed environment is the SERVER_SOFTWARE environment variable:

if (System.getenv("SERVER_SOFTWARE").startsWith("Dev")) {
  // Load MyConstants-dev.properties
} else {
  // Load MyConstants-prod.properties
}

Maybe you can pick which Guice module to load based off of that.

于 2009-11-06T18:10:42.873 に答える