ApplicationContext.xml 不更新目标的环境变量

ApplicationContext.xml does not update env variables at target

这是我的 ApplicationContext.xml

代码
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
                <property name="driverClassName" value="${database.driverClassName}" />
                <property name="url" value="${database.url}" />
                <property name="username" value="${database.username}" />
                <property name="password" value="${database.password}" />
                <property name="testOnBorrow" value="true" />
                <property name="testOnReturn" value="true" />
                <property name="testWhileIdle" value="true" />
                <property name="timeBetweenEvictionRunsMillis" value="1800000" />
                <property name="numTestsPerEvictionRun" value="3" />
                <property name="minEvictableIdleTimeMillis" value="1800000" />
            </bean>

我的属性在名为 database.properties

的文件中定义

我需要在 parent pom.xml 中进行哪些更改以 convert the env variable at 目标运行时间

能否请您帮忙或给我一个适当的建议或 link 可以让我在运行时获得数据库属性的名称。 例如 database.driverName 应更新为 jdbcDriver

@Component
public class PropertyReloader {

    @Autowired
    private StandardEnvironment env;

    @Scheduled(fixedRate=5000)
    public void reloadProperties() throws IOException {
        MutablePropertySources ps = env.getPropertySources();
        Properties pr = new Properties();
        InputStream inputStream = getClass().getResourceAsStream("/ApplicationContext.xml");
        pr.load(inputStream);
        inputStream.close();
        pr.replace("class path resource [ApplicationContext.xml]", new PropertiesPropertySource("class path resource [ApplicationContext.xml]", pr));
    }
}

每五秒更新一次。

因为我的项目必须有相应的 .properties 文件,而我的 parent pom.xml 只使用 .properties 文件。它无法获取其他 .properties 文件。我的变量没有在运行时更新的原因。我维护了一个 common.properties 文件并在 pom.xml

中添加了路径

现在我得到了想要的结果