、
出现这个问题,如何解决?
1、首先我的思路是,查看之前的test是否可以行得通,然后发现行不通;所以以是整体的jar包的问题,所以反复将仓库文件删除,然后再重新引入,然后还是不行。同时还找了非常多的Failed to load ApplicationContext解决办法,但是感觉并不通用(可能是这个大问题下面有非常多的不同的问题),并没有解决。
2、新的发现是:查看到Caused by一行中,BeanCreationException: Error creating bean with name 'orderMasterDao',说明这个bean创建的有问题。然后再尝试把新建的'orderMasterDao'和'orderMasterDaoTest'给注释掉,重新运行之前的test文件发现是可行的。
3、那么排除了是jar包的问题,肯定就是两个文件的代码问题...后面发现
两个问题
(1)findByBuyerOpenId方法中的属性名是BuyerOpenId,而OrderMaster中设置的是BuyerOpenid。大小写的区别
package com.payphone.dao;
import com.payphone.dataobject.OrderMaster;
import org.springframework.data.domain.Page;
//import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import javax.swing.*;
import java.awt.print.Pageable;
public interface OrderMasterDao extends JpaRepository<OrderMaster, String> {
Page<OrderMaster> findByBuyerOpenId(String buyerOpenid, Pageable pageable);
}
(2)对于Page引入的包也不对,应该是注释的import
import org.springframework.data.domain.Pageable;
而不是
import java.awt.print.Pageable;
值得注意的一个很重要的点是,即使你在别的test中不会用到相应的bean,但是test会初始化所有bean,如果有任何的bean出错,都会导致其余的test也会出现报错。