java - 从依赖项中排除类

标签 java maven-2 maven-3 dependency-management

我想在运行时的依赖关系之间切换。

伪代码:

//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 类使用模拟依赖项

最佳答案

这是依赖注入(inject)的完美候选者。 如果这是 Web 应用程序,或者您可以添加其他库,例如 Spring 或任何类型的 DI 容器(PicoContainer?),您可以利用它们在运行时选择依赖项。

尝试谷歌搜索“java @Alternative 注释”。

关于java - 从依赖项中排除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27069344/

相关文章:

maven - 在 Maven 中限制对运行时范围的传递依赖

java - 如何通过电子邮件发送从相机拍摄的照片 Android

java - maven-shade-plugin 错误 : Cannot find setter, 加法器或 org.apache.maven.plugins.shade.resource.ManifestResourceTransformer 中的字段 'resource'

java bean : difference between persistent field and persistent property?

java - 如何避免 servlet 响应新的 html 页面?

maven-2 - 带汽车扩展的Maven war 神器

java - Maven 中的代码生成

maven-2 - 在 Windows 平台的 Linux 上使用自动运行创建自解压存档

maven-2 - 寻找 Webstart Maven 插件示例应用程序

java - Maven Android : java. lang.UnsupportedClassVersionError : com/android/dx/command/Main : Unsupported major. 次要版本 52.0