| This version is still in development and is not considered stable yet. For the latest stable version, please use Spring Framework 6.2.12! | 
Declaring an Aspect
With @AspectJ support enabled, any bean defined in your application context with a
class that is an @AspectJ aspect (has the @Aspect annotation) is automatically
detected by Spring and used to configure Spring AOP. The next two examples show the
minimal steps required for a not-very-useful aspect.
The first of the two examples shows a regular bean definition in the application context
that points to a bean class that is annotated with @Aspect:
<bean id="myAspect" class="com.xyz.NotVeryUsefulAspect">
	<!-- configure properties of the aspect here -->
</bean>The second of the two examples shows the NotVeryUsefulAspect class definition, which is
annotated with @Aspect:
- 
Java 
- 
Kotlin 
package com.xyz;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class NotVeryUsefulAspect {
}package com.xyz
import org.aspectj.lang.annotation.Aspect
@Aspect
class NotVeryUsefulAspectAspects (classes annotated with @Aspect) can have methods and fields, the same as any
other class. They can also contain pointcut, advice, and introduction (inter-type)
declarations.
| Autodetecting aspects through component scanningYou can register aspect classes as regular beans in your Spring XML configuration,
via @Beanmethods in@Configurationclasses, or have Spring autodetect them through
classpath scanning — the same as any other Spring-managed bean. However, note that the@Aspectannotation is not sufficient for autodetection in the classpath. For that
purpose, you need to add a separate@Componentannotation (or, alternatively, a custom
stereotype annotation that qualifies, as per the rules of Spring’s component scanner). | 
| Advising aspects with other aspects?In Spring AOP, aspects themselves cannot be the targets of advice from other
aspects. The @Aspectannotation on a class marks it as an aspect and, hence, excludes
it from auto-proxying. |