Spring Framework
Controllers
Optional Path Variables
@RequestMapping(value = {"/article", "/article/{id}"})
public Article getArticle(@PathVariable Map<String, String> pathVarsMap) {
String articleId = pathVarsMap.get("id");
if (articleId != null) {
Integer articleIdAsInt = Integer.valueOf(articleId);
//...
} else {
//...
}
}
Pointcut Expressions
Wildcards
*
: Matches any number of characters within a package name, but only matches one package level. |
..
: Matches any number of characters within a package name, and matches any number of package levels. |
Designators
execution
: For matching method execution join points, this is the primary pointcut designator you will use when working with Spring AOP.
within
: Within certain types.
this
: Bean reference is an instance of the given type.
target
: Target object is an instance of the given type.
args
: Arguments are instances of the given types.
@annotation
: Has the given annotation.
Operators
&&
: Logical AND.
||
: Logical OR.
!
: Logical NOT.
Examples
execution(* com.example.service.*.*(..))
: Matches any method execution in the service package.
execution(* com.example.service..*.*(..))
: Matches any method execution in the service package and any sub-package.
within(com.example.service.*)
: Matches any join point in the service package.
within(com.example.service..*)
: Matches any join point in the service package and any sub-package.
this(com.example.service.SomeService)
: Matches any join point where the proxy implements the SomeService interface.
target(com.example.service.SomeService)
: Matches any join point where the target object implements the SomeService interface.
args(java.io.Serializable)
: Matches any join point where the arguments are Serializable.
@annotation(com.example.annotation.SomeAnnotation)
: Matches any join point where the method has the SomeAnnotation annotation.
See also