【发布时间】:2014-04-11 18:21:55
【问题描述】:
玩弄原型。我有一个自动装配 JPARepository 的测试类
@ContextConfiguration("classpath:appContext-test.xml")
@Transactional
public class PersonRepositoryTest extends AbstractTransactionalJUnit4SpringContextTests {
private static Logger logger = LoggerFactory.getLogger(PersonRepositoryTest.class);
@Autowired
PersonRepository personRepository;
我的 appContext-test.xml 可以正常工作
<jpa:repositories base-package="com.mycompany.rd.misf.repository" />
但当我试图了解 spring 时,我认为这也可能有效。所以我注释掉了 jpa:repositories 标签并用这个补充了我的组件扫描:
<context:component-scan base-package="com.mycompany.rd.misf.model,com.mycompany.rd.misf.repository" />
我的存储库用@Repository 注释
@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
public List<Person> findByFirstNameAndLastName(String firstName,
String lastName);
@Query("select p from Person p where p.firstName = :firstName or p.lastName = :lastName")
public List<Person> findByFirstNameOrLastName(
@Param("firstName") String firstName,
@Param("lastName") String lastName);
public Page<Person> findAll(Pageable pageable);
}
但我遇到了例外:
无法自动装配字段: com.mycompany.rd.misf.repository.PersonRepository com.mycompany.rd.misf.repository.PersonRepositoryTest.personRepository; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 类型的限定 bean [com.mycompany.rd.misf.repository.PersonRepository] 找到 依赖项:预计至少有 1 个符合自动装配条件的 bean 这种依赖的候选人。依赖注解: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
为什么这不起作用?
我已经在我的 appContext-text.xml 文件中设置了。
任何帮助表示赞赏。
问候
我
【问题讨论】: