<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ``` /** * @author 張躍帥 * @Description: 獲取代理原始對象-工具 * @date 2020/08/12 */ public class AopTargetUtil { /** * 獲取被代理的對象本身 */ public static Object getTarget(Object proxy) { // 判斷是不是代理對象,如果不是直接返回 if (!AopUtils.isAopProxy(proxy)) { // 返回 return proxy; } try { // 判斷是否jdk動態代理 if (AopUtils.isJdkDynamicProxy(proxy)) { // 返回 return getJdkDynamicProxyTargetObject(proxy); } else { // 返回 return getCglibProxyTargetObject(proxy); } } catch (Exception e) { return null; } } /** * 獲取Cglib代理目標對象 */ private static Object getCglibProxyTargetObject(Object proxy) throws Exception { // 獲取聲明字段 Field h = proxy.getClass().getDeclaredField("CGLIB$CALLBACK_0"); // 設置可訪問 h.setAccessible(true); // 獲取aop代理 Object dynamicAdvisedInterceptor = h.get(proxy); // 獲取聲明字段 Field advised = dynamicAdvisedInterceptor.getClass().getDeclaredField("advised"); // 設置可訪問 advised.setAccessible(true); // 返回 return ((AdvisedSupport) advised.get(dynamicAdvisedInterceptor)).getTargetSource().getTarget(); } /** * 獲取jdk動態代理目標對象 */ private static Object getJdkDynamicProxyTargetObject(Object proxy) throws Exception { // 獲取聲明字段 Field h = proxy.getClass().getSuperclass().getDeclaredField("h"); // 設置可訪問 h.setAccessible(true); // 獲取aop代理 AopProxy aopProxy = (AopProxy) h.get(proxy); // 獲取聲明字段 Field advised = aopProxy.getClass().getDeclaredField("advised"); // 設置可訪問 advised.setAccessible(true); // 返回 return ((AdvisedSupport) advised.get(aopProxy)).getTargetSource().getTarget(); } }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看