@Repository注解会导致spring boot生成一个动态代理
更新:HHH   时间:2023-1-7


用了一个@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://cache.tdyun.com/upload/information/20200309/33/64978.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

图片中红框处返回值为null,原因未知。
返回云计算教程...