Ich möchte meine Play-Anwendung auf eine bestimmte Anwendung Konfigurationsdatei basierend auf der Umgebung, in der es ausgeführt wird zeigen. Es gibt drei und sie entsprechen den Standard Play-Status:Detect Play 2.2.x-Modus vor dem Start der Anwendung mit Java
- application.dev.conf
- application.test.conf
- application.prod.conf
ein Mitarbeiter teilte eine Methode, dies zu tun, die ein OS envir Einstellung erfordert Variable.
Ich möchte die Notwendigkeit, eine Betriebssystemvariable zu setzen, beseitigen. Meine Präferenz ist die Verwendung, was auch immer spielt beim Start verwendet zu wissen, in welchem Modus es in ist.
Zum Beispiel, wenn Sie play run
von der Kommandozeile ausgeführt werden, einen Teil der Ausgabe ist "[info] play - Application started (Dev)"
Ich möchte dies nutzen Informationen in meinem Global.java, wo ich außer Kraft setzen onLoadConfig wie so:
public Configuration onLoadConfig(Configuration baseConfiguration, File f, ClassLoader loader) {
String playEnv=<some static method to get mode>;
Config additionalConfig = ConfigFactory.parseFile(new File(f,"conf/application."+playEnv+".conf"));
Config baseConfig = baseConfiguration.getWrappedConfiguration().underlying();
return new Configuration(baseConfig.withFallback(additionalConfig));
}
Alles, was ich finde, ist, wie diese nach zu tun hat die Anwendung, dh mit isDev(), isTest(), isProd() gestartet .
Gibt es eine statische Methode, die den Modus bereitstellt, während ich onLoadConfig in Global.java überschreibe?
In Scala gibt es einen Parameter 'Modus', in Java gibt es nicht. Also habe ich ein Ticket geöffnet: https://github.com/playframework/playframework/issues/2279 –
Danke Antonio. Ich werde das Problem verfolgen. –