<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 一,應用范圍 1,如果目標對象實現了接口,在默認情況下會采用JDK的動態代理實現AOP 2,如果目標對象實現了接口,也可以強制使用CGLIB生成代理實現AOP 3,如果目標對象沒有實現接口,必須引入CGLIB,Spring會在JDK的動態代理和CGLIB代理之間進行切換。 ## 二,強制使用CGLIB代理 ###1,引入CGLIB的Jar: ![](https://box.kancloud.cn/2016-03-02_56d6638062f35.jpg) ### 2,Spring配置文件中加入強制使用CGLIB代理 ~~~ <!-- 強制使用CGLIB代理 --> <aop:aspectj-autoproxy proxy-target-class="true"/> ~~~ ## 三,小結 1, JDK的動態代理只能對實現了接口的類進行代理: ![](https://box.kancloud.cn/2016-03-02_56d663807168d.jpg) 如上圖,如果要為UserManagerImpl生成代理,這種關系下,可以使用JDK的動態代理,也可以強制使用CGLIB進行代理。 但是如果我去掉實現關系: ![](https://box.kancloud.cn/2016-03-02_56d6638081996.jpg) 這時候就必須要使用CGLIB了。 另外,CGLIB在實現動態代理的時候,主要是為指定的類生成一個子類,例如,我要對上面的UserManagerImpl生成一個代理,會繼承這個類,但是這個時候,如果我們把UserManagerImpl定義為final的,就無法被繼承了,也就不能生成代理類了。所以,我們的Target object最好不要聲明為final的。
                  <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>

                              哎呀哎呀视频在线观看