用了一个@Repository注解,本意是避免了idea开发工具提示接口 unused,但是导致了一个后果,spring boot自动把该接口包装成了动态代理类,里面才是mybatis生成的动态代理类。
项目框架内用到了hdl = Proxy.getInvocationHandler(this.baseMapper); 来获取真实的DAO层接口,导致了获取不到,取到的是Jdk的动态代理类

下面是basemapper的代理实现类。
com.baomidou.mybatisplus.core.override.PageMapperProxy@73d0f,
它的InvocationHandler是JdkDynamicAopProxy类,但是调用getinvocationHandler方法会返回null,因为取不到System.getSecurityManager()
![](https://s1.51cto.com/images/blog/201904/04/b164e60c24a1c7ace65601ba8e25ae5e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

图片中红框处返回值为null,原因未知。