Springフレームワークの重要な知識点のまとめ(三)


一、AOPって何?
1、AOP(切面プログラミング向け)は、業務ロジックの各部分を隔離することで、業務ロジックの各部分間の結合度を低下させ、プログラムの再利用性を向上させるとともに、開発の効率を向上させる.2、AOPは、従来の縦継承システムの重複コードに代わって横抽出メカニズムを採用している(パフォーマンス監視、トランザクション管理、セキュリティチェック、キャッシュ)
二、なぜAOPを学ぶのか.
実行中にソースコードを変更せずに既存のメソッドを強化できるためです.
三、AOPの強みは何ですか.
  • 重複コードを減らす.開発の効率を提供する.メンテナンスが便利
  • 四、AOPの基礎原理
    JDKの動的エージェント技術(主な)
    1、インタフェースのためにプロキシクラスのバイトコードファイルを作成する2、ClassLoaderを使ってバイトコードファイルをJVM 3にロードする、プロキシクラスインスタンスオブジェクトを作成し、オブジェクトの目標方法を実行する
    cglibエージェント技術
    五、AOP関連用語
    Joinpoint(接続点)接続点とは、ブロックされた点を指す.springでは、springはメソッドタイプの接続点のみをサポートするため、すべてのメソッドを指します.
    Pointcut(切り込みポイント)-(切り込みポイント式の作成)、プログラム強化のエントリ.
    Advice(通知/強化)-springのメソッドを強化し、トランザクション管理関連コードを記述します.
    ターゲットオブジェクト-エージェントのターゲットオブジェクト
    Weaving(織り込み)–強化をターゲットオブジェクトに適用して新しいエージェントオブジェクトを作成するプロセスです.
    Proxy(エージェント)–AOPによってクラスが織り込まれて強化されると、結果エージェントクラスが生成されます.
    Aspect(カット)=カットポイント+通知
    六、入門ケース
    (一)まず簡単に手順を説明する
    ①新しい座標AOP、Spring-aspects、aspectを導入する.②配置書類は具体的なAOP制約を導入する;③パッケージ構造を作成し、具体的なインタフェースと実装クラスを作成する.④目標類を注入する;⑤切麺類を定義する.⑥プロファイルに切麺類を注入する.⑦AOP配置を完成する;⑧テスト
    (二)具体的な実施
    ①新しい座標AOP、Spring-aspects、aspectを導入する.
        
            aopalliance
            aopalliance
            1.0
        
        
        
            org.springframework
            spring-aspects
            5.0.2.RELEASE
        
        
        
            org.aspectj
            aspectjweaver
            1.8.3
        
    

    ②配置書類は具体的なAOP制約を導入する;
    
    
    

    ③パッケージ構造を作成し、具体的なインタフェースと実装クラスを作成する.
      :
    package demo3;
    public interface UserService {
        public void save();
    }
       :
    package demo3;
    public class UserServiceImpl implements UserService {
        public void save() {
            System.out.println("   :    ...");
        }
    }
    

    ④目標類を注入する;
    
    

    ⑤切麺類を定義する.
    package demo3;
    /*
    *        =    (   ) +   (     )
    * */
    public class MyXmlAspect {
        /*  */
        public void log(){
            System.out.println("        ......");
        }
    }
    

    ⑥プロファイルに切麺類を注入する.
    
    

    ⑦AOP配置を完成する;
    
    
    
                
                
                    
                    
                
    
    

    ⑧試験類を作成して試験する
    //                      spring-test
    @RunWith(SpringJUnit4ClassRunner.class)
    //           
    @ContextConfiguration("classpath:applicationContext4.xml")
    public class demo4 {
        //        
        @Autowired
        private UserService userService;
    
        /*  */
        @Test
        public void run(){
            userService.save();
        }
    }
    

    (三)AOPの通知タイプ
    
    

    七、SpringのAOP技術-注釈方式
    上に1、切面類に注記@Aspectを追加し、強化方法を作成し、通知タイプの注記宣言を使用する
    @Component  //      IOC   
    @Aspect     //         == 
    public class MyXmlAspect {
    
        /*  */
        // @Before(value = "       ")
        @Before(value = "execution(public * demo3.UserServiceImpl.save(..))")
        public void log(){
    
            System.out.println("        ......");
        }
    }
    

    2、プロファイルで自動エージェントを開く
    
            
    
             c
            

    八、SpringのAOP技術-純注解方式
    通知タイプ注記@Before–前置通知@AfterReturing–後置通知@Around–周回通知(ターゲットオブジェクトメソッドはデフォルトでは実行されず、手動で実行する必要があります)@After–最終通知@AfterThrowing–異常放出通知
    構成クラスの作成
    @Configuration      //    
    @ComponentScan(value = "cn.tx.demo3")   //    
    @EnableAspectJAutoProxy     //        == 
    public class SpringConfig {
        
    }
    

    Springフレームワークの重要な知識点のまとめ(四).