アノテーションインターフェース EnableAspectJAutoProxy
@TargetSE(TYPESE)
@RetentionSE(RUNTIMESE)
@DocumentedSE
@Import(org.springframework.context.annotation.AspectJAutoProxyRegistrar.class)
public @interface EnableAspectJAutoProxy
Spring の 
<aop:aspectj-autoproxy> XML 要素にある機能と同様に、AspectJ の @Aspect アノテーションでマークされたコンポーネントの処理のサポートを有効にします。次のように @Configuration クラスで使用されます。
 @Configuration
 @EnableAspectJAutoProxy
 public class AppConfig {
     @Bean
     public FooService fooService() {
         return new FooService();
     }
     @Bean
     public MyAspect myAspect() {
         return new MyAspect();
     }
 } ここで、FooService は典型的な POJO コンポーネントであり、MyAspect は @Aspect スタイルの側面です。
 public class FooService {
     // various methods
 }
 @Aspect
 public class MyAspect {
     @Before("execution(* FooService+.*(..))")
     public void advice() {
         // advise FooService methods as appropriate
     }
 } 上記のシナリオでは、@EnableAspectJAutoProxy は、MyAspect が適切に処理され、FooService が貢献するアドバイスでプロキシ化されることを保証します。 ユーザーは、proxyTargetClass() 属性を使用して、FooService 用に作成されるプロキシの型を制御できます。以下は、デフォルトのインターフェースベースの JDK プロキシアプローチとは対照的に、CGLIB スタイルの「サブクラス」プロキシを有効にします。
 @Configuration
 @EnableAspectJAutoProxy(proxyTargetClass=true)
 public class AppConfig {
     // ...
 }@Aspect Bean は、他のコンポーネントと同様にコンポーネントスキャンされる場合があることに注意してください。@Aspect と @Component の両方でアスペクトをマークするだけです:
 package com.foo;
 @Component
 public class FooService { ... }
 @Aspect
 @Component
 public class MyAspect { ... } 次に、@ComponentScan アノテーションを使用して両方を取得します。
 @Configuration
 @ComponentScan("com.foo")
 @EnableAspectJAutoProxy
 public class AppConfig {
     // no explicit @Bean definitions required
 } 注: @EnableAspectJAutoProxy はローカルアプリケーションコンテキストにのみ適用され、さまざまなレベルで Bean を選択的にプロキシできます。複数のレベルでその動作を適用する必要がある場合は、共通のルート Web アプリケーションコンテキストと個別の DispatcherServlet アプリケーションコンテキストなど、各コンテキストで @EnableAspectJAutoProxy を再宣言してください。 この機能を使用するには、クラスパスに aspectjweaver が存在する必要があります。この依存関係は、一般に spring-aop ではオプションですが、@EnableAspectJAutoProxy およびその基礎となる機能には必須です。
- 導入:
- 3.1
- 作成者:
- Chris Beams, Juergen Hoeller
- 関連事項:
- Aspect
 
- オプション要素の概要オプション要素修飾子と型オプションの要素説明- boolean- AopContextクラスを介して取得するために、プロキシを- ThreadLocalとして AOP フレームワークによって公開する必要があることを示します。- boolean標準の Java インターフェースベースのプロキシではなく、サブクラスベース(CGLIB)のプロキシを作成するかどうかを示します。
- 要素の詳細- proxyTargetClassboolean proxyTargetClass標準の Java インターフェースベースのプロキシではなく、サブクラスベース(CGLIB)のプロキシを作成するかどうかを示します。デフォルトは- falseです。- デフォルト:
- false
 
- exposeProxyboolean exposeProxy- AopContextクラスを介して取得するために、プロキシを- ThreadLocalとして AOP フレームワークによって公開する必要があることを示します。デフォルトではオフです。つまり、- AopContextアクセスが機能するという保証はありません。- 導入:
- 4.3.1
 - デフォルト:
- false