Terms:
Advice: An aspect's functionality. Aspects have a purpose - a job they're meant to do. In AOP terms, the job of an aspect is called advice. Advice is woven into a program's execution at one or more join points.
Advice defines both the what and the when of an aspect. Spring aspects can work with five kinds of advice:
Before—The advice functionality takes place before the advised method is
invoked.
After—The advice functionality takes place after the advised method completes,
regardless of the outcome.
After-returning—The advice functionality takes place after the advised method
successfully completes.
After-throwing—The advice functionality takes place after the advised method
throws an exception.
Around—The advice wraps the advised method, providing some functionality
before and after the advised method is invoked.
<aop:config>
<aop:aspectref="audience">
<aop:pointcutid="performance"expression=
"execution(* com.springinaction.springidol.Performer.perform(..))"
/>
<aop:before
pointcut-ref="performance"
method="takeSeats" />
<aop:before
pointcut-ref="performance"
method="turnOffCellPhones"/>
<aop:after-returning
pointcut-ref="performance"
method="applaud" />
<aop:after-throwing
pointcut-ref="performance"
method="demandRefund" />
</aop:aspect>
</aop:config>
Join Points,
A join point is a point in the execution of the application where an aspect can be plugged in. This point could be a method being called, an exception being thrown, or even a field being modified.
PointCuts,
If advice defines the what and when of aspects, then pointcuts define the where. A
pointcut definition matches one or more join points at which advice should be woven.
Aspects,
An aspect is the merger of advice and pointcuts. Taken together, advice and pointcuts define everything there is to know about an aspect - what it does and where an when it does it.
Introductions,
An introduction allows you to add new methods or attributes to existing classes.
Weaving
Weaving is the process of applying aspects to a target object to create a new proxied object. Spring Aspects are woven in sometime during the execution of the application. Typically, Spring AOP Container will dynamically generate a proxy object that will delegate to the target object while weaving in the aspect in Runtime.
Annotating aspects,
A key feature introduced in ApsectJ5 is the ability to use annotations to create aspects.
Prerequisite: <aop:aspectj-autoproxy/>
@Aspect
public classAudience{
@Pointcut(
"execution(* com.springinaction.springidol.Performer.perform(..))")
public voidperformance(){
}
@Before("performance()")
public voidtakeSeats(){
System.out.println("Theaudienceistakingtheirseats.");
}
@Before("performance()")
public voidturnOffCellPhones(){
System.out.println("Theaudienceisturningofftheircellphones");
}
@AfterReturning("performance()")
public voidapplaud(){
System.out.println("CLAPCLAPCLAPCLAPCLAP");
}
@AfterThrowing("performance()")
public voiddemandRefund(){
System.out.println("Boo!Wewantourmoneyback!");
}
Advice: An aspect's functionality. Aspects have a purpose - a job they're meant to do. In AOP terms, the job of an aspect is called advice. Advice is woven into a program's execution at one or more join points.
Advice defines both the what and the when of an aspect. Spring aspects can work with five kinds of advice:
Before—The advice functionality takes place before the advised method is
invoked.
After—The advice functionality takes place after the advised method completes,
regardless of the outcome.
After-returning—The advice functionality takes place after the advised method
successfully completes.
After-throwing—The advice functionality takes place after the advised method
throws an exception.
Around—The advice wraps the advised method, providing some functionality
before and after the advised method is invoked.
<aop:config>
<aop:aspectref="audience">
<aop:pointcutid="performance"expression=
"execution(* com.springinaction.springidol.Performer.perform(..))"
/>
<aop:before
pointcut-ref="performance"
method="takeSeats" />
<aop:before
pointcut-ref="performance"
method="turnOffCellPhones"/>
<aop:after-returning
pointcut-ref="performance"
method="applaud" />
<aop:after-throwing
pointcut-ref="performance"
method="demandRefund" />
</aop:aspect>
</aop:config>
Join Points,
A join point is a point in the execution of the application where an aspect can be plugged in. This point could be a method being called, an exception being thrown, or even a field being modified.
PointCuts,
If advice defines the what and when of aspects, then pointcuts define the where. A
pointcut definition matches one or more join points at which advice should be woven.
Aspects,
An aspect is the merger of advice and pointcuts. Taken together, advice and pointcuts define everything there is to know about an aspect - what it does and where an when it does it.
Introductions,
An introduction allows you to add new methods or attributes to existing classes.
Weaving
Weaving is the process of applying aspects to a target object to create a new proxied object. Spring Aspects are woven in sometime during the execution of the application. Typically, Spring AOP Container will dynamically generate a proxy object that will delegate to the target object while weaving in the aspect in Runtime.
Annotating aspects,
A key feature introduced in ApsectJ5 is the ability to use annotations to create aspects.
Prerequisite: <aop:aspectj-autoproxy/>
@Aspect
public classAudience{
@Pointcut(
"execution(* com.springinaction.springidol.Performer.perform(..))")
public voidperformance(){
}
@Before("performance()")
public voidtakeSeats(){
System.out.println("Theaudienceistakingtheirseats.");
}
@Before("performance()")
public voidturnOffCellPhones(){
System.out.println("Theaudienceisturningofftheircellphones");
}
@AfterReturning("performance()")
public voidapplaud(){
System.out.println("CLAPCLAPCLAPCLAPCLAP");
}
@AfterThrowing("performance()")
public voiddemandRefund(){
System.out.println("Boo!Wewantourmoneyback!");
}
Comments
Post a Comment