Hints
Below is an example of "Spring AOP's pointcut expression using @within() AspectJ Designator with Example"
|
Output
Before display!
Age: 29
City: New york
State: American State
After display!
|
Download as Zip
Link to download
AOPLogBeforeAndAfterMethodUsingwithinAnnotaion
Hints.
Click on File menu. then click " Download"
|
Step.1 Start a Java Project with required jars
- Open Eclipse
- Click on menu New -> Others
- In wizards type "Java Project" and Select "Java Project"
- Click Next
- Enter project name as "AOPLogBeforeAndAfterMethodUsingwithinAnnotaion", then click Next
- 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.
- Click Finish.
|
Step.2 Project Explorer Preview
|
StudentAdditionalDetails.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package com.springexample;
@StudentQualifier
public class StudentAdditionalDetails extends Student {
private String age;
private String city;
private String state;
public String getAge() {
return age;
}
public void setAge(String age) {
this .age = age;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this .city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this .state = state;
}
public void display(){
System.out.println( "Age: " +age);
System.out.println( "City: " +city);
System.out.println( "State: " +state);
}
}
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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" );
{
StudentAdditionalDetails student = (StudentAdditionalDetails) context.getBean( "studentAdditionalDetails" );
student.display();
}
}
}
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <? xml version = "1.0" encoding = "UTF-8" ?>
< bean id = "student" class = "com.springexample.Student" >
< property name = "studentNo" value = "1001" />
< property name = "studentName" value = "John Peter" />
</ bean >
< bean id = "studentAdditionalDetails" class = "com.springexample.StudentAdditionalDetails" >
< property name = "age" value = "29" />
< property name = "city" value = "New york" />
< property name = "state" value = "American State" />
</ bean >
< bean id = "mylogger" class = "com.springexample.MyLogger" />
< aop:config >
< aop:aspect ref = "mylogger" >
< aop:pointcut expression = "@within(com.springexample.StudentQualifier)" id = "studentDisplayLogsPnt" />
< aop:before pointcut-ref = "studentDisplayLogsPnt" method = "beforeDisplay" />
< aop:after pointcut-ref = "studentDisplayLogsPnt" method = "afterDisplay" />
</ aop:aspect >
</ aop:config >
</ beans >
|
|
1 2 3 4 5 6 7 8 9 10 11 | package com.springexample;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target ({ElementType.TYPE,ElementType.PARAMETER,ElementType.FIELD})
@Retention (RetentionPolicy.RUNTIME)
public @interface StudentQualifier {
}
|
|
1 2 3 4 5 6 7 8 9 10 | package com.springexample;
public class MyLogger {
public void beforeDisplay(){
System.out.println( "Before display!" );
}
public void afterDisplay(){
System.out.println( "After display!" );
}
}
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package com.springexample;
public class Student {
private int studentNo;
private String studentName;
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;
}
public void display(){
System.out.println( "No: " +studentNo);
System.out.println( "Name: " +studentName);
}
}
|
|