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

加载带注释bean的Spring集成测试

石臻
2023-03-14

由于某种原因,当我单独使用@ComponentScan时,我的DAO没有加载。

我的道:

@Repository
public class MyDAO{
  @Autowire
  private Datasource ds;
}

我的配置类(用嵌入的数据库覆盖数据源bean):

@Configuration
public class TestConfig extends AppConfig {

    @Bean
    public Datasource getDatasource() throws Exception{...}

我的测试课:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestConfig.class})
@ComponentScan
public class MyDAOTest {

    @Autowired
    private MyDAO target;

我的理解是@ComponentScan应该能够找到MyDAO并加载它(TestConfig类中的数据源加载得很好)。但是,没有加载MyDAO。我得到了“org.springframework.beans.factory.NoSuchBeanDefinitionException:没有找到[com.acme.dao.MyDAO]类型的合格bean作为依赖项。”我还尝试在@ComponentScan中指定包,例如com。acme或com.acme.dao。

当我将MyDAO.class作为@ContextConfiguration中的一个类时,它工作得很好。然而,我不想列出我的集成测试的所有类...

共有1个答案

昌栋
2023-03-14

以下设置将从AppConfig加载默认bean,同时覆盖TestConfig中指定的任何bean。TestConfig可以是嵌套类(在MyDAOTest中),只要它被声明为static。

@ContextConfiguration( classes = TestConfig.class )
@RunWith(SpringJUnit4ClassRunner.class)
public class MyDAOTest {
    ...
}

@Import(AppConfig.class)
public class TestConfig {
    @Bean public Datasource getDatasource() throws Exception {...}
}

@Configuration
@ComponentScan( basePackages = {"com.acme"})
public class AppConfig {
    ....
}
 类似资料:
  • 我想在Spring中测试注入依赖关系。 我想要一个这样的测试: 我尝试过使用ContextConfiguration和一个测试配置文件,但是测试失败了,我不想在测试中使用@autowired,我想创建我的类的一个实例,并且bean是自动autowired的。

  • 我已经用自定义注释注释了Spring bean,但似乎Spring在创建bean后删除了我的自定义注释。 第二步不行,我的自定义注释丢失了。(可能是到期的代理文件) 我的豆子 我的一个自定义注释的示例 findAndDoStuffWithAnnotatedThings Bean中出错的内容被传递到一个类,在该类中,我的自定义注释得到验证,但我的验证程序找不到任何注释。(Util使用isAnnota

  • 我有一个包含注销endpoint的Spring控制器 我如何使用mockmvc来测试这一点? 到目前为止,我只有这段代码,但我不知道如何测试该请求。已调用logout()(其效果如何?)。

  • 我有一个Spring批处理项目,它使用基于注释的配置,并且是一个工作代码本身。现在我想将它与一个新的Spring Batch管理项目集成。我尝试了一些博客中可用/回答的解决方案,比如将批处理项目的依赖项添加到批处理管理项目中,并修改META-INF/spring/batch/servlet/override/context-config.xml文件以指向批处理项目配置文件。即。job包存在于Spr

  • 问题内容: 我正在观看 Burt Beckwith* 制作的精彩视频 * http://www.infoq.com/presentations/GORM- Performance 他说: “在传统的Hibernate中,您可以将该系列映射为Bag, 这只是一个常规集合,没有顺序或唯一性保证” 我如何映射该集合,而没有带注释的顺序或唯一性?谢谢。 问题答案: 如果使用a 作为引用类型,但未指定索引号

  • 我的bean注释为 我有一些getter和setter,但我对JSP感兴趣的是 然后在我的控制器中,我将产品添加到列表中 然后,在我的JSP中,我尝试了一下,但没有得到结果: 我还使用了下面的属性,以便我的beans向JSP公开:< code > 编辑:控制器: 表始终为空。我已经调试过了,我看到在我的个人豆中,填充了产品列表。