@Repository註解會導致spring boot生成一個動態代理
阿新 • • 發佈:2019-04-04
null base tex ges pri pre col sys ces 用了一個@Repository註解,本意是避免了idea開發工具提示接口 unused,但是導致了一個後果,spring boot自動把該接口包裝成了動態代理類,裏面才是mybatis生成的動態代理類。
項目框架內用到了hdl = Proxy.getInvocationHandler(this.baseMapper); 來獲取真實的DAO層接口,導致了獲取不到,取到的是Jdk的動態代理類
項目框架內用到了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生成一個動態代理