在运行时用 H2 DataSource 替换 DataSource bean
Replace DataSource bean with H2 DataSource at runtime
我正在研究一个测试框架。
当某些用例需要 H2 时,我想用一个用于 H2 的 MySQL DataSource
bean 替换(在 XML 中未配置为 bean)。
一些用例仍然使用MySQL,所以我不能直接修改DataSource
bean config。在SpringXML配置文件中只能配置一个DataSource
(没有配置H2DataSource
)
有没有办法在运行时替换 sqlmapclient
(ibatis) 中的 DataSource
bean?
一种选择是在您的测试中使用 Spring 对 bean 定义配置文件 和 @ActiveProfiles
的支持 类.
但是,如果您不愿意或不能这样做,另一种选择是实现自定义 BeanFactoryPostProcessor
, 替换 MySQL DataSource
带有 H2 DataSource
的 bean 定义。请记住,如果你走那条路,你仍然需要条件逻辑(在你的 BeanFactoryPostProcessor
中)来决定是否替换 MySQL DataSource
bean 定义。
我正在研究一个测试框架。
当某些用例需要 H2 时,我想用一个用于 H2 的 MySQL DataSource
bean 替换(在 XML 中未配置为 bean)。
一些用例仍然使用MySQL,所以我不能直接修改DataSource
bean config。在SpringXML配置文件中只能配置一个DataSource
(没有配置H2DataSource
)
有没有办法在运行时替换 sqlmapclient
(ibatis) 中的 DataSource
bean?
一种选择是在您的测试中使用 Spring 对 bean 定义配置文件 和 @ActiveProfiles
的支持 类.
但是,如果您不愿意或不能这样做,另一种选择是实现自定义 BeanFactoryPostProcessor
, 替换 MySQL DataSource
带有 H2 DataSource
的 bean 定义。请记住,如果你走那条路,你仍然需要条件逻辑(在你的 BeanFactoryPostProcessor
中)来决定是否替换 MySQL DataSource
bean 定义。