我想在运行时中切换依赖项。
伪代码:
//use com.realdependency.ConnectionFactoryImpl;
Class A {
// intergration test
void testWithLiveDomain() {
Connection connection = ConnectionFactory.getInstance().getConnection(domain);
}
}
// use com.mymockeddependency.ConnectionFactoryImpl;
class B {
// unit test
void testWithMockDomain() {
Connection connection = ConnectionFactory.getInstance().getConnection(domain);
}
}
如果我在POM.xml中同时拥有两个依赖项,那么我的B类使用的是真正的依赖项而不是模拟的依赖项。如何限制B类使用模拟依赖项
答案 0 :(得分:1)
这是依赖注入的完美候选者。 如果这是web-app,或者您可以添加其他库,如Spring或任何类型的DI容器(PicoContainer?),您可以利用它们在运行时选择依赖项。
尝试谷歌搜索" java @Alternative注释"。