我的@DataMongoTest到底是哪里错了-抛出org.springframework.beans.factory.NoSuchBeanDefinitionException:没有符合条件的bean类型

Python学习者

嗨,我在Spring Boot 2.3.5.RELEASE版本中使用了MongoDB事务功能。我收到以下异常。我正在使用控制器类编写集成测试。

下面给出了例外。

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.app.cat.resource.Test0': Unsatisfied dependency expressed through field 'controller'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.dell.pde.resources.NVTValidationCategoryController' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) ~[spring-beans-5.2.10.RELEASE.jar:5.2.10.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) ~[spring-beans-5.2.10.RELEASE.jar:5.2.10.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPost

我在下面的代码段中提供。

@Profile("test")
@ActiveProfiles("test")
@DataMongoTest(excludeAutoConfiguration = MongoDBTxnConfiguration.class)
@Import(TestMongoConfig1.class)

@EnableAutoConfiguration(exclude={ SecurityAutoConfiguration.class, DataSourceAutoConfiguration.class, RedisAutoConfiguration.class,
    RedisRepositoriesAutoConfiguration.class,  
    SecurityFilterAutoConfiguration.class, SecurityAutoConfiguration.class })

@SpringBootApplication(scanBasePackages = {"com.app.cat"})
public class Test0 {
    
    @Autowired
    private CategoryController controller;
    
    @Autowired
    @Qualifier("validations")
    private ValidationService vldnService;
    
    @Test
    void testAllValidationsBeforeEntry() {
        System.out.println("controller : " + vldnService);
        assertEquals(true, true);
    }
}

请指导我我在做什么错。请帮我。

萨姆比特

@DataMongoTest注释还使用@AutoConfigureDataMongo@ImportAutoConfiguration如果提供自动配置的类,则将发生冲突。您必须使用@DataMongoTest排除其他类来加载和运行。由于它是Test类,因此请勿使用@SpringBootApplication(scanBasePackages = {"com.app.cat"})最后,我提供了可能对您有所帮助的位代码片段。

@DataMongoTest(excludeAutoConfiguration = {SecurityAutoConfiguration.class, 
        SecurityFilterAutoConfiguration.class, 
        SecurityAutoConfiguration.class, ... <any other configuration>})
@Profile("test")
@ComponentScan(basePackages = {"com.app.cat"}, excludeFilters={
          @ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, 
                  value= {MongoDBTxnConfiguration.class,SecurityCloudConfig.class})})

public class Test {
    @Autowired
    private YourControler ctrlr;
    
    
    @Test
    void test1() {
        // Logic for testing
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章