1. 程式人生 > >@Repository註解會導致spring boot生成一個動態代理

@Repository註解會導致spring boot生成一個動態代理

null base tex ges pri pre col sys ces

用了一個@Repository註解,本意是避免了idea開發工具提示接口 unused,但是導致了一個後果,spring boot自動把該接口包裝成了動態代理類,裏面才是mybatis生成的動態代理類。
項目框架內用到了hdl = Proxy.getInvocationHandler(this.baseMapper); 來獲取真實的DAO層接口,導致了獲取不到,取到的是Jdk的動態代理類

下面是basemapper的代理實現類。
[email protected],
它的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,原因未知。

@Repository註解會導致spring boot生成一個動態代理