Followers

springAOP : AfterReturning

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