首页 > 解决方案 > Spring 4,没有 Spring Boot 的 JUnit 4 NoSuchBeanDefinitionException:没有符合条件的 bean 类型

问题描述

我有一个运行良好的 Spring 4.3 应用程序。我正在尝试使用 JUnit 4.11,但没有加载上下文。

原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有可用的“caesb.websupport.service.BatchSolicitacaoService”类型的合格bean:预计至少有1个符合自动装配候选资格的bean。依赖注解:{@javax.inject.Inject()}

基础弹簧application.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans>  
  ....
    <tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />

    <context:annotation-config />

    <context:component-scan base-package="caesb">
    </context:component-scan>
</beans>

test-spring-application.xml

它只有数据源配置。

BatchSolicitacaoService.java

@Service
public class BatchSolicitacaoService extends BaseEntityService<BatchSolicitacao>
{
...
}

PriorizacaoHidrometroDWService.java

@Service
public class PriorizacaoHidrometroDWService extends BaseEntityService<PriorizacaoHidrometroDW>
{
...
   @Inject 
   private BatchSolicitacaoService batchSolicitacaoService;

}

基本测试.java

@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class})
@ContextConfiguration({"classpath*:/base-spring-application.xml","classpath*:/test-spring-application.xml"})
@Transactional
public class BasicTest
{
    @Test
    public void test() {
        System.out.println("teste teste");
    }
}

我添加了@TestExecutionListeners,但没有成功。我删除了@Transaction,但也没有成功。

标签: javaspringjunit4springjunit4classrunner

解决方案


推荐阅读