Ich verwende Anmerkungen, um meine Federumgebung wie folgt zu konfigurieren:
@Configuration
...
@PropertySource("classpath:/config/default.properties")
...
public class GeneralApplicationConfiguration implements WebApplicationInitializer
{
@Autowired
Environment env;
}
Dies führt dazu, dass meine Eigenschaften default.propertiesnicht Teil der Environment. Ich möchte den @PropertySourceMechanismus hier verwenden, da er bereits die Möglichkeit bietet, Eigenschaften über mehrere Fallback-Ebenen und verschiedene dynamische Speicherorte hinweg zu überladen, basierend auf den Umgebungseinstellungen (z. B. config_dir-Speicherort). Ich habe gerade den Fallback entfernt, um das Beispiel zu vereinfachen.
Mein Problem ist jetzt jedoch, dass ich beispielsweise meine Datenquelleneigenschaften in konfigurieren möchte default.properties. Sie können die Einstellungen an die Datenquelle übergeben, ohne genau zu wissen, welche Einstellungen die Datenquelle erwartet
Properties p = ...
datasource.setProperties(p);
Das Problem ist jedoch, dass das EnvironmentObjekt weder ein PropertiesObjekt noch ein Mapoder etwas Vergleichbares ist. Aus meiner Sicht ist es einfach nicht möglich, auf alle Werte der Umgebung zuzugreifen, da es keine keySetoder iteratorMethode oder etwas Vergleichbares gibt.
Properties p <=== Environment env?
Vermisse ich etwas Ist es Environmentirgendwie möglich, auf alle Einträge des Objekts zuzugreifen ? Wenn ja, könnte ich die Einträge einem Mapoder einem PropertiesObjekt zuordnen, ich könnte sie sogar nach Präfix filtern oder zuordnen - Teilmengen als Standard-Java erstellen Map... Dies ist, was ich tun möchte. Irgendwelche Vorschläge?