org.springframework.aop.aspectj.annotation

## Class AspectMetadata

- java.lang.Object
- - org.springframework.aop.aspectj.annotation.AspectMetadata

-     public class AspectMetadata
      extends Object

  Metadata for an AspectJ aspect class, with an additional Spring AOP pointcut for the per clause.

  Uses AspectJ 5 AJType reflection API, so is only supported on Java 5. Enables us to work with different AspectJ instantiation models such as "singleton", "pertarget" and "perthis".

  Since:
    2.0
  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    `AspectJExpressionPointcut`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AspectMetadata(Class<?> aspectClass, String aspectName)` Create a new AspectMetadata instance for the given aspect class.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `AjType<?>` | `getAjType()` Return AspectJ reflection information.
    `Class<?>` | `getAspectClass()` Return the aspect class.
    `String` | `getAspectName()` Return the aspect class.
    `Pointcut` | `getPerClausePointcut()` Return a Spring pointcut expression for a singleton aspect.
    `boolean` | `isLazilyInstantiated()` Return whether the aspect needs to be lazily instantiated.
    `boolean` | `isPerThisOrPerTarget()` Return whether the aspect is defined as "perthis" or "pertarget".
    `boolean` | `isPerTypeWithin()` Return whether the aspect is defined as "pertypewithin".

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AspectMetadata

          public AspectMetadata(Class<?> aspectClass,
                                String aspectName)

      Create a new AspectMetadata instance for the given aspect class.
      Parameters:
        `aspectClass` - the aspect class
        `aspectName` - the name of the aspect

  - ### Method Detail

    - #### getAjType

          public AjType<?> getAjType()

      Return AspectJ reflection information.

    - #### getAspectClass

          public Class<?> getAspectClass()

      Return the aspect class.

    - #### getAspectName

          public String getAspectName()

      Return the aspect class.

    - #### getPerClausePointcut

          public Pointcut getPerClausePointcut()

      Return a Spring pointcut expression for a singleton aspect. (e.g. `Pointcut.TRUE` if it's a singleton).

    - #### isPerThisOrPerTarget

          public boolean isPerThisOrPerTarget()

      Return whether the aspect is defined as "perthis" or "pertarget".

    - #### isPerTypeWithin

          public boolean isPerTypeWithin()

      Return whether the aspect is defined as "pertypewithin".

    - #### isLazilyInstantiated

          public boolean isLazilyInstantiated()

      Return whether the aspect needs to be lazily instantiated.