当前位置: 首页 > 知识库问答 >
问题:

Spring:Autowire在Junit中加载的类中的不同类

关玮
2023-03-14
public class ClassA{

@Autowired
private ClassB classB;
}

有办法做到这一点吗?

共有1个答案

姬昊焱
2023-03-14

在没有Bean配置的情况下,我想不出另一种方法来做到这一点。您可以通过两种方式进行配置:

第一个:

@Configuration
public class AppConfig {

  @Bean
  public ClassB classB() {
    return new ClassB() {
      // this is a subclass that inherits everything from ClassB, so override what you want here
    }
  }
}

第二:(取自此处)

@RunWith(SpringRunner.class)
@SpringBootTest
public class SomeTest {

  // do this if you only want the modified classB in 1 place
  @Configuration
  static class TestConfig {
      @Bean
      public ClassB classB () {
          return new ClassB() {
            // same as the first
          }
      }
  }

  @Test
  public void testMethod() {
    // test
  }
}
 类似资料:
  • 问题内容: 假设我已经使用Groovyc编译了Groovy脚本,该脚本已在文件系统中生成了一个或多个.class文件。如何从Java应用程序动态地将这些类添加到类路径中,以加载它们并调用它们的方法?目标是预编译Groovy脚本并将其存储到数据库中,以便可以从脚本的编译版本执行评估。 问题答案: 您可以创建URLClassLoader的实例以从目录加载新类: 第1 行将.class 创建到.clas

  • 问题内容: 想象一下一个Java类,它具有您可以在类中找到的大多数功能。例如:它从另一个类继承,实现了几个接口,包括一些“静态最终”常量,一些最终常量,一些静态变量,实例变量,一个静态块,一个未命名的代码块(仅是{}中的代码),构造函数,方法等 当所涉及的类首次加载到JVM中时,该类的各个部分以什么顺序初始化或加载到JVM中?JVM中的调用堆栈在加载时是什么样的?假设这里只有一个类加载器在工作。

  • 问题内容: 是否可以在Java中加载类并“伪造”类的包名称/规范名称?我尝试这样做,这很明显,但是我在中收到“类名不匹配”的消息。 我这样做的原因是我试图加载在默认程序包中编写的API,以便我可以直接使用它而无需使用反射。该代码将在表示包和包名称导入的文件夹结构中针对该类进行编译。即: 我当前的代码如下: 问题答案: 如Pete所述,可以使用ASM字节码库来完成此操作。实际上,该库实际上带有一个专

  • 考虑下面的结构:代码> JBASS部署结构。ear的xml内部 鉴于此,我排除了default部署模块(第11行)和部署自定义位于文件夹或ear中。我还为子部署。 xerces类将从何处加载?从WildFly的默认模块或部署在中的自定义jar? 在子部署中添加路径依赖项的确切含义是什么?这会忽略主部署下的排除(即,org.apache.xerces)吗?

  • 我正在使用composer在我的项目中包含一个私有包,其中包含一些我将使用PHPUnit进行测试的类。包的大部分被正确地自动加载,我可以从单元测试中调用类,但是任何与它所在的目录命名相同的类都会抛出“未找到类”错误。 存储库符合psr-0,位于https://github.com/DeschutesDesignGroupLLC/IPS-Source 文件结构示例投掷错误: 调用

  • 每当我在tomcat中部署Web应用程序时,WEB-INF/lib中的所有jar都将加载到应用程序ClassLoader中。 我很少有其他位置有一些jars集,例如WEB-INF/ChildApp1/*. jar、WEB-INF/ChildApp2/*. jar......根据用户请求,我想将一些jars集加载到当前的类加载器中。 注意:我不想创建任何子类装入器。 我真正的要求是,如何以编程方式将