在运行时使用H2 DataSource替换DataSource bean

时间:2016-09-11 11:40:05

标签: testing junit h2 spring-test

我正在研究测试框架。

当一些用例需要H2时,我想将一个MySQL DataSource bean替换为一个用于H2的那个bean(不是用XML配置为bean)。

有些用例仍然使用MySQL,因此我无法直接修改DataSource bean配置。在Spring XML配置文件中只应配置一个DataSource(未配置H2 DataSource)。

有没有办法在运行时替换DataSource(ibatis)中的sqlmapclient bean?

1 个答案:

答案 0 :(得分:0)

一种选择是在测试类中使用Spring对 bean定义配置文件__add__的支持。

但是,如果您不愿意或无法做到这一点,另一个选择是实现一个自定义@ActiveProfiles 替换 MySQL BeanFactoryPostProcessor的bean定义H2 DataSource的bean定义。请记住,如果你走这条路,你仍然需要条件逻辑(在你的DataSource中)来决定是否要替换MySQL BeanFactoryPostProcessor bean定义。