调试一直说basemapper为空,其实解决方案很简单,用注解而非new 构造;
原因:
注解注入是依赖注入,依赖会逐级传递,继承父级依赖,BaseMapper的实现你都看不到那他肯定是通过依赖注入xml实现功能的,你new就断层了,只能依赖传递传下来用他的方法;
还有一种错误在测试的时候报错,但实际运行没事,比较隐蔽:
就是在测试的时候,明明已经有注入层@Service,对象也是@Resource注解来的,却还是报null,不过这回不是basemapper的null,是注入的对象null;
注意:注入操作需要spring框架来注入,test方法注入无效,所以要用@RunWith()启动
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {
@Resource
OrderInfoService orderInfoService;
}