如何将Spring依赖注入到我编写的扩展AbstractTestExecutionListener的TestExecutionListener类中?
Spring DI似乎不适用于TestExecutionListener类。问题示例:
AbstractTestExecutionListener:
class SimpleClassTestListener extends AbstractTestExecutionListener {
@Autowired
protected String simplefield; // does not work simplefield = null
@Override
public void beforeTestClass(TestContext testContext) throws Exception {
System.out.println("simplefield " + simplefield);
}
}
配置文件:
@Configuration
@ComponentScan(basePackages = { "com.example*" })
class SimpleConfig {
@Bean
public String simpleField() {
return "simpleField";
}
}
JUnit测试文件:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { SimpleConfig.class })
@TestExecutionListeners(mergeMode = TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS, listeners = {
SimpleClassTestListener.class })
public class SimpleTest {
@Test
public void test(){
assertTrue();
}
}
如代码注释中突出显示的那样,当我运行此代码时,它将打印“ simplefield null”,因为simplefield永远不会注入值。
只需为整个TestExecutionListener添加自动装配。
@Override
public void beforeTestClass(TestContext testContext) throws Exception {
testContext.getApplicationContext()
.getAutowireCapableBeanFactory()
.autowireBean(this);
// your code that uses autowired fields
}
检查github中的示例项目。
我做了一个名为AcessoCliente的单例类 但我需要对我的单例类执行一个名为ValidadorNivelDeAcessoBusiness的类的依赖注入
我开始开发一个经典的Spring Boot MVC应用程序。我使用依赖注入(使用、注释)没有任何问题。 当我尝试使用依赖注入运行某些集成测试时,我会以相同的方式从JUnit得到以下错误消息: 在包中,我有一个没有注释的接口和一个用注释的类。 我不明白,如果DI可以运行我的应用程序,那么为什么它在测试中不起作用。不知何故,我的注释实现类没有被spring boot发现,就像错误消息所说的那样。 测试
我使用Spring Boot开发了REST服务。在其中一个REST控制器中,我有一个基于字段的依赖注入,我想将其更改为基于构造函数的依赖注入。我的依赖注入设置目前如下所示: 使用此设置,一切正常。我想将ParameterDateService更改为基于构造函数,我尝试了以下方法: 更改为基于构造函数的依赖注入后,当我尝试像这样注入依赖时,我会得到一个参数数据ervice.post参数日期(参数日期
我遇到了依赖注入周期问题。我请求重新设计建议。提前谢谢。 错误描述:应用程序上下文中某些bean的依赖关系形成一个循环: 这是两个班 第一类: 第二类:
我有基类和,它们有多个实现。但是,每个参数化类型只有一个实现,因此应该能够确定需要哪个子类。 在将第二个参数添加到基类和(从而添加到它们的所有子类)之前,这实际上是有效的。但是在添加了这些之后,下面是Spring初始化期间的错误: UnsatisfiedDependencyException:创建名为“My App”的bean时出错:通过字段“x1”表示的未满足的依赖项;嵌套异常为org.spri
我正在编写一个应用程序,该应用程序与一个数据库通信,获取其他数据库的凭据,并连接到其他数据库。它使用在运行时构造的数据源和实体管理器工厂来执行此操作。 如果我想使用Spring Data Repositories,我想我需要自动连接它们,因此它们必须是Spring Beans。 如果在对第一个数据库运行查询之前没有构造的DataSource,我如何使用Spring Data?