最近在自己写项目的时候遇到了上述问题,通过debug发现是getbean 的时候拿不到service,最后发现原有项目方法原来的人写快了把public写成了private,改正后就能拿到了
因为 springboot 的缓存机制是通过切面编程 aop来实现的,对于SpringAOP的cglib是不会拦截private方法的(而JDK动态代理是基于接口的更不可能对private方法生效),因此不进切面逻辑,aop是拦截不到的。由此导致tService注入失败为null,当把接口声明改为public问题便解决了。
希望能帮到有相同问题的人