Browse Source

Merge branch '6.0.x'

pull/30793/head
Sam Brannen 1 year ago
parent
commit
a23c9cd53d
  1. 18
      framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc
  2. 13
      spring-aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java

18
framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc

@ -154,7 +154,6 @@ Java:: @@ -154,7 +154,6 @@ Java::
----
package com.xyz;
@Aspect
public class Pointcuts {
@Pointcut("execution(public * *(..))")
@ -179,7 +178,6 @@ Kotlin:: @@ -179,7 +178,6 @@ Kotlin::
----
package com.xyz
@Aspect
class Pointcuts {
@Pointcut("execution(public * *(..))")
@ -211,9 +209,9 @@ pointcut matching. @@ -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:: @@ -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:: @@ -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:: @@ -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_:

13
spring-aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java

@ -637,17 +637,20 @@ abstract class AbstractAspectJAdvisorFactoryTests { @@ -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;
}

Loading…
Cancel
Save