コントローラー層では、 @Autowired を使用して TestService インターフェイスを挿入します。
注入するのは、サービス
層実装クラスの代わりに、次のようにサービス層インターフェイスです。
なぜ?
AOPの原理はダイナミックプロキシであり、使用できるプロキシには実装クラスをベースとしたJDKベースのダイナミックプロキシと、実装クラスをベースとしたCglibベースのダイナミックプロキシの2種類があります。サブクラスについて。JAVA動的プロキシ。
JDK ベースの動的プロキシを使用しています。コントローラーに TestService の代わりに TestServiceImpl を挿入すると、トランザクション AOP が使用できなくなります。つまり、トランザクション制御がありません。なぜですか? Spring が AOP とトランザクション コントロールで構成されていることがわかっているため、トランザクション コントロールは Spring によって完全に管理できます。以下は
、構成されたエントリ ポイント式