diff --git a/framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc b/framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc index 068bfeaf926..34386f80393 100644 --- a/framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc @@ -154,7 +154,6 @@ Java:: ---- package com.xyz; - @Aspect public class Pointcuts { @Pointcut("execution(public * *(..))") @@ -179,7 +178,6 @@ Kotlin:: ---- package com.xyz - @Aspect class Pointcuts { @Pointcut("execution(public * *(..))") @@ -211,9 +209,9 @@ pointcut matching. When working with enterprise applications, developers often have the need to refer to modules of the application and particular sets of operations from within several aspects. -We recommend defining a dedicated aspect that captures commonly used _named pointcut_ -expressions for this purpose. Such an aspect typically resembles the following -`CommonPointcuts` example (though what you name the aspect is up to you): +We recommend defining a dedicated class that captures commonly used _named pointcut_ +expressions for this purpose. Such a class typically resembles the following +`CommonPointcuts` example (though what you name the class is up to you): [tabs] ====== @@ -223,10 +221,8 @@ Java:: ---- package com.xyz; - import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; - @Aspect public class CommonPointcuts { /** @@ -287,10 +283,8 @@ Kotlin:: ---- package com.xyz - import org.aspectj.lang.annotation.Aspect import org.aspectj.lang.annotation.Pointcut - @Aspect class CommonPointcuts { /** @@ -346,9 +340,9 @@ Kotlin:: ---- ====== -You can refer to the pointcuts defined in such an aspect anywhere you need a pointcut -expression by referencing the fully-qualified name of the `@Aspect` class combined with -the `@Pointcut` method's name. For example, to make the service layer transactional, you +You can refer to the pointcuts defined in such a class anywhere you need a pointcut +expression by referencing the fully-qualified name of the class combined with the +`@Pointcut` method's name. For example, to make the service layer transactional, you could write the following which references the `com.xyz.CommonPointcuts.businessService()` _named pointcut_: diff --git a/spring-aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java b/spring-aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java index 074668bb8a8..0d802ea2dce 100644 --- a/spring-aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java +++ b/spring-aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java @@ -637,17 +637,20 @@ abstract class AbstractAspectJAdvisorFactoryTests { } + static class CommonPointcuts { + + @Pointcut("execution(* getAge())") + void getAge() { + } + } + @Aspect static class NamedPointcutAspectWithFQN { @SuppressWarnings("unused") private ITestBean fieldThatShouldBeIgnoredBySpringAtAspectJProcessing = new TestBean(); - @Pointcut("execution(* getAge())") - void getAge() { - } - - @Around("org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactoryTests.NamedPointcutAspectWithFQN.getAge()") + @Around("org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactoryTests.CommonPointcuts.getAge()()") int changeReturnValue(ProceedingJoinPoint pjp) { return -1; }