Dhe*_*rik 9 java spring integration-testing spring-data-jpa
我试图理解为什么我不能自动装配类库,但我可以在相同的包中自动装配一个接口存储库以进行相同的测试.当我启动应用程序时,相同的存储库按预期工作.
一,错误:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.app.person.repository.PersonRepository' 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.support.DefaultPersonbleBeanFactory.raiseNoMatchingBeanFound(DefaultPersonbleBeanFactory.java:1493)
at org.springframework.beans.factory.support.DefaultPersonbleBeanFactory.doResolveDependency(DefaultPersonbleBeanFactory.java:1104)
at org.springframework.beans.factory.support.DefaultPersonbleBeanFactory.resolveDependency(DefaultPersonbleBeanFactory.java:1066)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
... 28 more
Run Code Online (Sandbox Code Playgroud)
我有一个非常简单的例子.考试:
@RunWith(SpringRunner.class)
@DataJpaTest
public class PersonRepositoryTest {
@Autowired
private PersonRepository personRepository; // fail...
@Autowired
private PersonCrudRepository personCrudRepository; // works!
@Test
public void findOne() {
}
}
Run Code Online (Sandbox Code Playgroud)
存储库类:
@Repository
public class PersonRepository {
//code
}
Run Code Online (Sandbox Code Playgroud)
存储库界面:
@Repository
public interface PersonCrudRepository extends CrudRepository<Person, Long> {
}
Run Code Online (Sandbox Code Playgroud)
在遇到同样错误的糟糕体验后,我试图在配置中找到一些细节或测试导致此问题的原因.另一种可能性是@DataJpaTest不支持类存储库.
| 归档时间: |
|
| 查看次数: |
7807 次 |
| 最近记录: |