これは大学のプロジェクト用です。Spring PropertyPlaceholderConfigurer を使用して、プロパティ ファイルから値を取得しています。次のコードを使用して、GUI からプロパティ ファイルを更新しています。
Properties prop = new Properties();
FileOutputStream out = null;
out = new FileOutputStream("pro.properties");
prop.setProperty("durationpro", "wk");
prop.store(out, null);
out.flush();
out.close();
更新されたファイルを機能させるために 2 つの方法を試しました: http://www.wuenschenswert.net/wunschdenken/archives/127 ファイルの更新直後にコンテキスト アプリケーションを更新しようとしました
ApplicationContext f = new FileSystemXmlApplicationContext("Bean1.xml");
((ConfigurableApplicationContext)f).refresh();
私のコード
ApplicationContext context = new ClassPathXmlApplicationContext("Bean1.xml");
BeanFactory factory = (BeanFactory) context;
TestGUI t = (TestGUI) factory.getBean("testbean");
アプリケーションの実行中に (アプリケーションを閉じる必要はありません)、プロパティ ファイルを手動で開いて閉じる必要があり、変更が認識されます。これは両方の方法で発生します
春の更新方法に使用しているxmlファイルは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:pro.properties</value>
</list>
</property>
</bean>
<bean id="com" class="Domestic" />
<bean id="wk" class="Week" />
<bean id="mth" class="Month" />
<bean id="testbean" class="TestGUI">
<property name="customerType" ref="com" />
<property name="duration" ref="${durationpro}"/>
</bean>
</beans>
他の Wunschdenken メソッド用に xml ファイルを正確にコピーしました
助けてくれてありがとう