<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國際加速解決方案。 廣告
                ~~~ ---- 創建實現MethodInterceptor接口的代理類 //不能代理被final修飾的類 太監類(不能有子類) //AOP面向切面編程(不需要修改源代碼,對代碼增強的一種手段) public class CglibProxy implements MethodInterceptor { //聲明一個被代理對象 private Object obj; public void bind(Object obj){ this.obj=obj; } //創建一個方法,返回代理對象 public Object getProxy(){ //創建Enhancer對象。 Enhancer enhancer=new Enhancer(); //被代理對象 enhancer.setSuperclass(obj.getClass()); //設置回調 enhancer.setCallback(this); //返回代理對象 return enhancer.create(); } @Override public Object intercept(Object arg0, Method method, Object[] args, MethodProxy arg3) throws Throwable { // TODO Auto-generated method stub check(); beforeLogging(); Object returnValue = method.invoke(obj, args); afterLogging(); return returnValue; } public void check() { System.out.println("安全檢查"); } public void beforeLogging() { System.out.println("事前日志"); } public void afterLogging() { System.out.println("事后日志"); } } ~~~ ~~~ //靜態代理 動態代理 cglib ----spring AOP的實現原理 public class MainTest { public static void main(String[] args) { // TODO Auto-generated method stub CglibProxy cp=new CglibProxy(); cp.bind(new Person()); Object proxy = cp.getProxy();//拿到代理對象 Person p=(Person) proxy; p.eat(); } } ~~~ ~~~ //Person類 public class Person { //吃之前 檢查安全性 前事日志 核心吃業務 后事日志 public void eat(){ System.out.println("吃...."); } } ~~~
                  <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>

                              哎呀哎呀视频在线观看