我在src / main / resources
中有Spring上下文<bean id="dataSource"
class="org.postgresql.ds.PGSimpleDataSource">
<property name="serverName" value="localhost"/>
<property name="databaseName" value="bookcompany"/>
<property name="user" value="thisadmin"/>
<property name="password" value="thisadmin"/>
</bean>
我想更新Java swing GUI中每个属性值的“值”
screenshoot :Java Swing GUI for select database properties
这是我的Java GUI代码:
private void connectButtonActionPerformed(java.awt.event.ActionEvent evt) {
String serverNew = serverName.getText();
String databaseNew = databaseName.getText();
String dbUsernameNew = databaseName.getText();
String dbPasswordNew = databasePassword.getText();
//???
}
是否可以使用java GUI中的数据更新spring-context的属性值? 请帮忙..
答案 0 :(得分:0)
如果使用@Bean
创建对象并使用@ComponentScan
,则可以更改这些值,但我不确定您是否可以动态更改数据库连接参数。
如果您想要数据库连接,那么您可以通过扩展PersistenceUnitInfo
来获得GUI中的值后自己创建所需的bean或对象。
答案 1 :(得分:0)
我找到了一个解决方案,我使用“属性”文件存储属性值。然后,我的Spring上下文文件将使用该属性文件。
首先,我将Spring上下文文件更新为:
<context:property-placeholder location="file:./jdbc.properties" />
<bean id="dataSource"
class="org.postgresql.ds.PGSimpleDataSource">
<property name="serverName" value="${db.server}"/>
<property name="databaseName" value="${db.database}"/>
<property name="user" value="${db.username}"/>
<property name="password" value="${db.password}"/>
</bean>
我更新了Java代码:
String serverNew = serverName.getText();
String databaseNew = databaseName.getText();
String dbUsernameNew = databaseName.getText();
String dbPasswordNew = databasePassword.getText();
Properties props = new Properties();
File f = new File("./jdbc.properties");
if (f.exists()) {
props.load(new FileReader(f));
props.setProperty("db.host", serverNew);
props.setProperty("db.database", databaseNew);
props.setProperty("db.username", dbUsernameNew);
props.setProperty("db.password", dbPasswordNew);
f.createNewFile();
}
out = new FileOutputStream(f);
props.store(out, null);