<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] 先寫個接口 ~~~ package service; public interface UserService { void save(); void delete(); void update(); void find(); } ~~~ 再寫接口的實現類 ~~~ package service; public class UserServiceImpl implements UserService { @Override public void save() { System.out.println("保存用戶"); } @Override public void delete() { System.out.println("刪除用戶"); } @Override public void update() { System.out.println("更新用戶"); } @Override public void find() { System.out.println("查找用戶"); } } ~~~ aop實現 ~~~ package proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import service.UserService; import service.UserServiceImpl; public class UserServiceProxyFactory implements InvocationHandler { private UserService us; public UserServiceProxyFactory(UserService us) { super(); // 必須要這個對象,因為method.invoke要用 this.us = us; } // 獲得代理對象 public UserService getUserviceProxy() { // 生成動態代理 // 第一個參數類加載器 // 第二個參數把被代理對象實現的接口給他 // 第三個參數,表示你這個代理要怎么增強 UserService usProxy = (UserService) Proxy.newProxyInstance(UserServiceProxyFactory.class.getClassLoader(), UserServiceImpl.class.getInterfaces(), this); return usProxy; } // 第一個參數,會把當前代理對象傳給你 // 第二個參數,當前執行的方法傳給你 // 第三個參數,當前方法的參數傳給你 @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // 前置增強的 System.out.println("打開事務"); // 本來的方法 Object invoke = method.invoke(us, args); // 后置增強 System.out.println("提交事務"); return invoke; } } ~~~ 測試下 ~~~ @Test public void fun3() { UserService us = new UserServiceImpl(); UserServiceProxyFactory factory = new UserServiceProxyFactory(us); UserService usProxy = factory.getUserviceProxy(); usProxy.save(); } ~~~
                  <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>

                              哎呀哎呀视频在线观看