Knowledge Walls
J2EE Technologies Tutorial
Hyderabad, Andhra Pradesh, India
Spring's @Aspect, @Pointcut, @Before, @After, @AfterReturning and @AfterThrowing Annotations Example
3462 Views
Hints 
Below is an example of "Spring's @Aspect, @Pointcut, @Before, @After, @AfterReturning and @AfterThrowing Annotations Example"
Download as Zip 
Link to download
AOPLogUsingAspectJAllAdviceAnnotations

Hints.
Click on File menu. then click "Download"
Step.1 Start a Java Project with required jars 
  1. Open Eclipse
  2. Click on menu New -> Others
  3. In wizards type "Java Project" and Select "Java Project"
  4. Click Next
  5. Enter project name as "AOPLogUsingAspectJAllAdviceAnnotations", then click Next
  6. Goto Libraries tab, then click on Add External JARs, then select Spring's 21 Framework Jars aopalliance-1.0.jar, aspectjtools-1.6.6.jar and commons-logging-1.1.jar.
  7. Click Finish.
Step.2 Project Explorer Preview 
RunMyProgram.java
package com.springexample;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class RunMyProgram {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
		StudentHolder studentHolder = (StudentHolder) context.getBean("studentHolder");
			studentHolder.displayStudentDetails((Student) context.getBean("student"));
	}
}
StudentHolder.java
package com.springexample;

import org.springframework.stereotype.Component;

@Component
public class StudentHolder {
	public void displayStudentDetails(Student student){
		System.out.println("Student Details");
		System.out.println("---------------");
		System.out.println("Student No: "+student.getStudentNo());
		System.out.println("Student Name: "+student.getStudentName());
	}
}
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"
	xmlns:context="http://www.springframework.org/schema/context"
	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
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	
	<aop:aspectj-autoproxy />
	<context:component-scan base-package="com.springexample" />
	<bean id="myLogger" class="com.springexample.MyLogger" />
</beans>
MyLogger.java
package com.springexample;


import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class MyLogger {
	@Pointcut("execution(* *.displayStudentDetails(..))")
    public void myPointcut(){}
    
	@Before("myPointcut()")
	public void beforeDisplay(){
		System.out.println("Before display!");
	}
	
	@After("myPointcut()")
	public void afterDisplay(){
		System.out.println("After display!");
	}
	
	@AfterReturning("myPointcut()")
	public void afterReturningDisplay(){
		System.out.println("After Returning display!");
	}
	
	@AfterThrowing("myPointcut()")
	public void afterThrowingDisplay(){
		System.out.println("After Throwing display!");
	}
}
Student.java
package com.springexample;

import org.springframework.stereotype.Component;

@Component
public class Student {
	private int studentNo;
	private String studentName;
	
	public Student(){
		this.studentNo = 1001;
		this.studentName = "John Peter";
	}
	
	public int getStudentNo() {
		return studentNo;
	}
	public void setStudentNo(int studentNo) {
		this.studentNo = studentNo;
	}
	public String getStudentName() {
		return studentName;
	}
	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}	
}
Output 
Before display!
Student Details
---------------
Student No: 1001
Student Name: John Peter
After display!
After Returning display!
Best Lessons of "Spring 3.0 Examples"
Top lessons which are viewed more times.
  Copyright © 2014 Knowledge walls, All rights reserved
KnowledgeWalls
keep your tutorials and learnings with KnowledgeWalls. Don't lose your learnings hereafter. Save and revise it whenever required.
Click here for more details