Employee.java
=========
package
com.mohan;
public class Employee{
public int
m(){System.out.println("m() method invoked");return 2;}
public int
k(){System.out.println("k() method invoked");return 3;}
}
TrackEmployee.java
=============
package
com.mohan;
import
org.aspectj.lang.JoinPoint;
public
class TrackEmployee{
public void myadvice(JoinPoint
jp,Object result)//it is advice (after advice)
{
System.out.println("additional
concern");
System.out.println("Method Signature:
" + jp.getSignature());
System.out.println("Result in
advice: "+result);
System.out.println("end of
after returning advice...");
}
}
Beans.xml
=======
<?xml
version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
">
<aop:aspectj-autoproxy
/>
<bean
id="opBean" class="com.mohan.Employee"> </bean>
<bean
id="trackAspect" class="com.mohan.TrackEmployee"></bean>
<aop:config>
<aop:aspect id="myaspect"
ref="trackAspect" >
<!-- @AfterReturning -->
<aop:pointcut
id="pointCutAfterReturning" expression="execution(*
com.mohan.Employee.*(..))" />
<aop:after-returning
method="myadvice" returning="result"
pointcut-ref="pointCutAfterReturning" />
</aop:aspect>
</aop:config>
</beans>
Test.java
======
package
com.mohan;
import
org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
public
class Test{
public static void main(String[]
args){
ApplicationContext context = new
ClassPathXmlApplicationContext("Beans.xml");
Employee e = (Employee)
context.getBean("opBean");
System.out.println("calling
m...");
System.out.println(e.m());
System.out.println("calling
k...");
System.out.println(e.k());
}
}
No comments:
Post a Comment