Aspect is
a block of code that is injected into application at run time.
In a
typical application, application is devided into multiple modules, and each
module should handle concerns like logging, security, transactions etc., apart
from the business logic.
Aspects
are used to solve cross-cutting concerns.
Examples
of cross-cutting concerns
a.
Caching
b.
Logging
c.
Transaction
Management
d.
Security
(Authorization and Authentication)
Key terms
in Aspect Oriented Programming
a.
Join
Point: It is the line of code that Aspect is going to target (Ex: a method).
b.
Pointcut:
It is an expression used to identify the Join Point.
c.
Advice:
it is the code that you actually executes at a join point that is selected by
Pointcut expression.
d.
Aspect:
It is a module that contains all the pointcuts and advices.
@Configuration
@Aspect
public class LoggingAspect {
@Pointcut("@annotation(com.sample.app.annotations.Loggable)")
public void executionTimeExpr() {
}
@Around("executionTimeExpr()")
public Object executionTime(ProceedingJoinPoint joinPoint) throws Throwable {
.....
.....
Object result = joinPoint.proceed();
.....
.....
return result;
}
}
In the
above Example,
Aspect:
LoggingAspect
Pointcut: executionTimeExpr
Advice: executionTime
JoinPoint:
It is the method that matches to given point cut expression.
- Introduction to Aspect
- Aspect: Hello World Application
- Aspects: Before Advice
- Aspect: @After Advice
- Aspects: @Around advice
- Aspect: @Pointcut example
No comments:
Post a Comment