JdbcTemplate 使用更新的 application.properties 重新连接

问题描述

具有以下代码

@SpringBoottest(classes = UiApplication.class)
class CleanTestData {

  @Autowired DataPopulation dataPopulation;
  List<String> branches = Arrays.asList("master","f1","f2");

  @Test
  void cleanData() {
    for (String branch : branches){
      dataPopulation.removeAllTestData();
    }
  }
}

@Component
@Slf4j
public class DataPopulation {

  private JdbcTemplate jdbcTemplate;

  @Autowired
  public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
    this.jdbcTemplate = jdbcTemplate;
  }

  public void removeAllTestData() {
    jdbcTemplate.update("delete from myaccounts")
  }  
} 

application.properties
spring.datasource.url=jdbc:postgresql://8.8.8.8:7320/${branch} 

每个分支都有自己的数据库
在 cleanData() 测试运行期间,它需要重新连接到特定的数据库

文件
application.properties - Spring 配置
DataPopulation - 用于连接到数据库并执行一些查询的类
CleanTestData - 测试,为每个分支调用干净的测试数据。

我需要解决以下挑战:

  1. 如何在cleanData()测试运行时将分支名称传递给spring.datasource.url?
    也许,我可以把分支的变量作为系统环境变量,每次都覆盖它。

  2. 如何使用更新的配置重新连接 JdbcTemplate?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)