プロパティのフォールバックメカニズムが期待どおりに機能することを確認するために、小さな UnitTest を作成しています。私の考えは、プログラムでファイルシステムのどこかにプロパティファイルを作成し、Spring がこのファイルにアクセスして、この時点から小道具をロードできるようにすることでした。
問題は、ファイルが存在するにもかかわらず、春がファイルを見たり読んだりしないことです(Windowsエクスプローラーがファイルを表示して開きます)
作成されたファイル:
try {
// Create temp file.
// File file = File.createTempFile("temp", ".properties");
File file = new File("C:/temp/temp.properties");
// den aktuellen Pfad in eine Umgebungsvariable setzen, damit sie von der SpringConfig ausgelesen werden kann.
System.out.println(file.getAbsolutePath());
System.setProperty("tempPropsFilename", file.getAbsolutePath());
// Delete temp file when program exits.
file.deleteOnExit();
春の設定
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<!-- Die Position der Datei in der Liste ist wichtig. Die letzte überschreibt
die erste (natürlich nur die props, die in beiden enthalten sind) -->
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<array>
<value>${tempPropsFilename}</value>
</array>
</property>
</bean>
Spring からのエラー メッセージ
06-07@09:45:48 [main ] INFO ( PropertiesLoaderSupport.java:177) config.PropertyPlaceholderConfigurer - Loading properties file from class path resource [C:/temp/temp.properties]
06-07@09:45:48 [main ] WARN ( PropertiesLoaderSupport.java:200) config.PropertyPlaceholderConfigurer - Could not load properties from class path resource [C:/temp/temp.properties]: class path resource [C:/temp/temp.properties] cannot be opened because it does not exist